OpenMVG 를 사용하다가 코드를 빌드하다보니, 제목처럼 M_PI 선언이 되어 있지 않다는 에러가 나타난다. openMVG의 numeric.h 파일에서 디파인된 M_PI 를 사용한다.

numeric.h 파일에 선언된 D2R 함수는 각도를 라디안으로 변환하는 함수인데, M_PI 아래 빨간줄이 보인다. :-(
M_PI는 어디에 선언되어 있는것일까..??

선언을 추가하기위해서는
프로젝트 속성 > C/C++ > 전처리기 > 전처리기 정의 에 '_USE_MATH_DEFINES' 라는 전처리기를 넣어주면 된다. 이렇게 하면 위에 빨간 줄이 사라지고 M_PI 가 선언되어 있는 것으로 나타난다.

이제 M_PI 의 선언부로 따라들어가 보자.

windows SDK 안에 corcrt_math_defines.h 파일에 수학에서 자주 사용되는 상수들이 define 되어 있는 것을 확인 할 수 있다. 이제 수학에서 자주 사용되는 상수를 사용할 때는 직접 #define 하지 말고 전처리기에 _USE_MATH_DEFINES 를 넣어주자. :-)
반응형
'IT 스터디 > C, C++' 카테고리의 다른 글
| C/C++ 개발할 때 SDL 옵션은 뭘까? (0) | 2023.11.02 |
|---|---|
| VS Code C++ Debugging on Ubuntu (2) - feat. "launch.json" (0) | 2023.09.08 |
| collect2: error: ld returned 1 exit status 에러?? (0) | 2023.08.11 |
| CMake 간단 사용법 (1) (0) | 2023.08.01 |
| atan2() 함수의 의미와 사용 (0) | 2023.06.22 |