Spaurh의 느긋한 블로그



GNU GSL win32 ESP error mate!!! Programming Tip

매트랩용 매트릭스 연산을 대부분 C로 구현해놓은 수학 계산용 라이브러리인 GSL을 사용함에 있어서 몇가지 팁

GSL 유닉스 버전용 코드를 GSL win32에 포팅하려고 
에서 GSL for windows를 가져와서 쓰던 도중 문제 몇가지

일단 GSL for win32는 현재 1.8버전까지 포팅이 되어있는 관계로 그 이후 버전에으로 짜여진 유닉스 코드를 포팅하는 경우에는 함수가 빠져있는 경우가 있습니다.
특히 cholesy decomposition 관련 함수는 없더군요. 이 경우에는 LU decomposition을 쓰는 정도외엔 별 방법 없는것 같습니다. 물론 SVD는 안써봐서 몰겠습니다. QR도 마찬가지...

그리고 그냥 콘솔 win32 환경에서 프로젝트를 생성해서 작업하다가는 몇몇.. 특히 matrix_view나 vector_view 형식으로 주소를 참조할때 생기는 스택 포인트 리턴 문제가 발생합니다. 이 문제에 봉착했더니 몇시간을 삽질하게 되었는데 말이죠.

에서 자세히 설명해주고 있는데

"Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call. This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention."

라는 문구와 함께 에러가 뜨는 경우에는 프로젝트 속성창에서 Basic Runtime Checks를 해주시면 됩니다.
한국어로 보면 공용 언어 런타임 지원을 허용하면 됩니다.

아... 이 문제로 얼마나 삽질했던지... 어쨋든 위 사이트에서 잘 설명하고 있으니 한번 확인해보세요.