2013-07-31 2 views
3

Matlab에서 mex 명령을 사용하여 코드를 컴파일 할 때만 특정 헤더 파일을 포함하고 싶습니다. Visual Studio로 직접 컴파일 된 경우 포함시키지 않을 것입니다.Mex 컴파일 매크로

도울 수있는 매크로가 있습니까?

#ifdef MEX_COMPILE_FLAG 
#include "mexDependent.h" 
#end 
+0

"Visual Studio에서 직접 컴파일 한 경우"VS가 * .mex 파일을 만들거나 독립 실행 형 * .exe를 만드는 경우? – aschepler

+0

@aschepler standalone – Leo

+0

다른 것보다 먼저 "mex.h"를 포함하도록 신경 쓰면 mex_h 매크로를 사용할 수 있다는 것을 알았습니다. – Leo

답변

4

MATLAB_MEX_FILE 매크로를 사용할 수 있습니다. mex.h가 제대로 작동하게하려면 컴파일 된 객체가 결국 mex 파일에 링크되는 경우에만이 매크로를 정의해야합니다. 따라서 mex 명령은 컴파일러를 호출 할 때 항상이를 정의합니다.

3

수동으로이 작업을 수행 할 수 있습니다 :

내가 이런 종류의 일을하고 싶습니다

mex -DMEX_COMPILE_FLAG ... 
0

를 지금까지 내가 아는 한, mex은 확실하게 설정하지 않고 다른 컴파일러를 호출 전 처리기 매크로. 그러나 Matlab 빌드 스크립트가 MEX_COMPILE_FLAG으로 설정되면 #end#endif 일 필요가 있다는 것을 제외하고는 제안이 작동합니다.

관련 문제