Matlab에서 mex 명령을 사용하여 코드를 컴파일 할 때만 특정 헤더 파일을 포함하고 싶습니다. Visual Studio로 직접 컴파일 된 경우 포함시키지 않을 것입니다.Mex 컴파일 매크로
도울 수있는 매크로가 있습니까?
이#ifdef MEX_COMPILE_FLAG
#include "mexDependent.h"
#end
Matlab에서 mex 명령을 사용하여 코드를 컴파일 할 때만 특정 헤더 파일을 포함하고 싶습니다. Visual Studio로 직접 컴파일 된 경우 포함시키지 않을 것입니다.Mex 컴파일 매크로
도울 수있는 매크로가 있습니까?
이#ifdef MEX_COMPILE_FLAG
#include "mexDependent.h"
#end
MATLAB_MEX_FILE
매크로를 사용할 수 있습니다. mex.h가 제대로 작동하게하려면 컴파일 된 객체가 결국 mex 파일에 링크되는 경우에만이 매크로를 정의해야합니다. 따라서 mex
명령은 컴파일러를 호출 할 때 항상이를 정의합니다.
수동으로이 작업을 수행 할 수 있습니다 :
내가 이런 종류의 일을하고 싶습니다
mex -DMEX_COMPILE_FLAG ...
를 지금까지 내가 아는 한, mex
은 확실하게 설정하지 않고 다른 컴파일러를 호출 전 처리기 매크로. 그러나 Matlab 빌드 스크립트가 MEX_COMPILE_FLAG
으로 설정되면 #end
이 #endif
일 필요가 있다는 것을 제외하고는 제안이 작동합니다.
"Visual Studio에서 직접 컴파일 한 경우"VS가 * .mex 파일을 만들거나 독립 실행 형 * .exe를 만드는 경우? – aschepler
@aschepler standalone – Leo
다른 것보다 먼저 "mex.h"를 포함하도록 신경 쓰면 mex_h 매크로를 사용할 수 있다는 것을 알았습니다. – Leo