IT 스터디/C, C++

error C2065: 'M_PI': 선언되지 않은 식별자입니다. (feat. openMVG)

KimDol2 2023. 10. 19. 14:42

 

 

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 를 넣어주자. :-)

 

 

 

반응형