3

只有当我的代码通过 Matlab 中的 mex 命令编译时,我才希望包含某个头文件。如果它是直接用 Visual Studio 编译的,我不希望它包含在内。

有没有可以帮助解决这个问题的宏?

我想做这样的事情:

#ifdef MEX_COMPILE_FLAG
#include "mexDependent.h"
#end
4

3 回答 3

4

MATLAB_MEX_FILE您可以为此使用宏。为了使 mex.h 正常工作,当且仅当编译对象最终将链接到 mex 文件时,必须定义此宏。因此,该mex命令确保在调用编译器时始终定义它。

于 2013-07-31T13:13:19.813 回答
3

您可以手动执行此操作:

mex -DMEX_COMPILE_FLAG ...
于 2013-07-31T12:47:07.380 回答
0

据我所知,mex只是调用其他编译器而不可靠地设置预处理器宏。但是,如果您的 Matlab 构建脚本确实设置MEX_COMPILE_FLAG了,那么您的建议将起作用,除了#end需要设置为#endif.

于 2013-07-31T12:48:58.127 回答