Visual Studio 2022를 위해 미리 컴파일된 GSL 라이브러리를 사용해본 결과입니다..
2019.3.21 최초작성 Visual Studio 2017 사용
2022.2.25 최종작성 Visual Studio 2022 사용
GNU 공식 홈페이지(https://www.gnu.org/software/gsl/ )에서는 소스 코드 패키지만 배포하고 있기 때문에 사용하려면 플랫폼에 맞추어 컴파일 하는 작업이 필요합니다.
다행스럽게도 찾아보면 윈도우에서 많이 사용되는 Visual Studio, MinGW등을 위해 컴파일한 결과물인 바이너리 패키지를 배포하는 분들이 있습니다.
이번에도 찾아보니 몇군데 있었지만 아래 링크에 Visual Studio 2017 64비트 버전을 위해 빌드된 GSL 라이브러리가 있어서 사용해보았습니다.
다시 진행해보면서 Visual Studio 2022에서 진행했습니다.
C/C++ libraries for Windows
https://www.bruot.org/hp/libraries/
리눅스에서는 필요한 패키지들을 쉽게 설치할 수 있어 비교적 쉽게 진행할 수 있지만 윈도우에서 하려면 의존성이 있는 라이브러리들을 일일이 찾아 다운로드 받아 빌드해줘야 합니다.
그래서 보통 바이너리 패키지를 찾게 되네요..
물론 최신버전이 필요한 경우나 빌드 옵션을 바꿔야 하는 경우에는 어쩔 수 없이 컴파일을 해줘야 합니다.
1. Visual Studio 2017용으로 배포된 gsl_2_2_msvc2017_64.zip 파일을 다운로드합니다.
2. 압축을 풀어 생성된 폴더의 이름을 gsl로 변경합니다. 이후 다음 경로 상에 있는 파일들을 사용해야 합니다.
3. 새 프로젝트 만들기를 클릭합니다.
왼쪽 위 항목을 C++로 변경하고 Windows 데스크톱 마법사를 선택합니다. 이제 다음을 클릭합니다.
프로젝트 이름을 적고 만들기를 클릭합니다.
애플리케이션 종류로 콘솔 애플리케이션을 선택하고 추가 옵션에서 빈 프로젝트를 클릭합니다. 확인을 클릭합니다.
4. 솔루션 탐색기에서 소스 파일을 선택하고 마우스 오른쪽 버튼을 눌러서 메뉴에서 추가 > 새 항목을 선택합니다.
추가할 파일 이름을 적어주고 추가를 클릭합니다.
프로젝트에 소스 파일이 추가되었습니다.
5. GSL 메뉴얼에 있는 코드 중 Linear Least-Squares Fitting 예제를 cpp 파일에 붙여넣어 태스트를 진행해보겠습니다.
Visual Studio에서 다음 코드를 사용하려면 헤더파일(.h) 위치와 라이브러리(.lib) 파일 위치 및 사용할 라이브러리 지정을 해줘야 합니다.
출처는 아래 링크입니다.
#include <stdio.h> #include <gsl/gsl_fit.h> int main (void) { int i, n = 4; double x[4] = { 1970, 1980, 1990, 2000 }; double y[4] = { 12, 11, 14, 13 }; double w[4] = { 0.1, 0.2, 0.3, 0.4 }; double c0, c1, cov00, cov01, cov11, chisq; gsl_fit_wlinear (x, 1, w, 1, y, 1, n, &c0, &c1, &cov00, &cov01, &cov11, &chisq); printf ("# best fit: Y = %g + %g X\n", c0, c1); printf ("# covariance matrix:\n"); printf ("# [ %g, %g\n# %g, %g]\n", cov00, cov01, cov01, cov11); printf ("# chisq = %g\n", chisq); for (i = 0; i < n; i++) printf ("data: %g %g %g\n", x[i], y[i], 1/sqrt(w[i])); printf ("\n"); for (i = -30; i < 130; i++) { double xf = x[0] + (i/100.0) * (x[n-1] - x[0]); double yf, yf_err; gsl_fit_linear_est (xf, c0, c1, cov00, cov01, cov11, &yf, &yf_err); printf ("fit: %g %g\n", xf, yf); printf ("hi : %g %g\n", xf, yf + yf_err); printf ("lo : %g %g\n", xf, yf - yf_err); } return 0; } |
6. 툴바의 솔루션 플랫폼이 x64인지 확인합니다.
7.메뉴에서 프로젝트 > 속성을 선택합니다.
구성을 모든 구성으로 변경합니다.
왼쪽에 보이는 항목중에 C/C++을 선택하고 추가 포함 디렉토리 항목에 c:\gsl\include를 입력합니다.
8. 왼쪽에 보이는 항목 중에 링커를 선택합니다. 추가 라이브러리 디렉토리를 선택하고 C:\gsl\lib\gsl를 입력합니다.
9. 왼쪽 항목에서 링커 > 입력을 선택하고 추가 종속성 항목에 gsl.lib;cblas.lib;를 추가합니다.
이제 확인 버튼을 클릭하여 속성 페이지 창을 닫습니다.
10. 이제 Ctrl + F5를 눌러서 실행시켜 보면 다음처럼 실행결과를 볼 수 있습니다.
'OpenCV > OpenCV 강좌' 카테고리의 다른 글
컨투어 내부에 점이 있는지 파악하는 OpenCV Python 예제 (0) | 2023.10.18 |
---|---|
OpenCV에서 원하는 프레임부터 동영상 재생하기 (0) | 2023.10.18 |
OpenCV에서 VideoCapture사용시 read 함수는 계속 실행해야 함 (0) | 2023.10.17 |
이미지 파일로 구글 이미지 검색하는 파이썬 코드(requests, webbrowser 사용) (0) | 2023.10.16 |
OpenCV Python : 깊이 이미지 depthmap을 화면에 출력하기 (0) | 2023.10.15 |
시간날때마다 틈틈이 이것저것 해보며 블로그에 글을 남깁니다.
블로그의 문서는 종종 최신 버전으로 업데이트됩니다.
여유 시간이 날때 진행하는 거라 언제 진행될지는 알 수 없습니다.
영화,책, 생각등을 올리는 블로그도 운영하고 있습니다.
https://freewriting2024.tistory.com
제가 쓴 책도 한번 검토해보세요 ^^
그렇게 천천히 걸으면서도 그렇게 빨리 앞으로 나갈 수 있다는 건.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!