Mex编译宏

3

当我的代码通过Matlab的mex命令编译时,我希望只包含特定的头文件。如果直接使用Visual Studio进行编译,则不需要包含该文件。

有没有宏可以帮助实现这一点?

我想实现类似以下内容的操作:

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

当“直接使用Visual Studio编译”时,VS会创建一个*.mex文件还是一个独立的*.exe文件? - aschepler
@aschepler 独立运行。 - Leo
我发现只要在任何其他内容之前包含“mex.h”,就可以使用mex_h宏。 - Leo
3个回答

4
你可以手动完成这个过程:
mex -DMEX_COMPILE_FLAG ...

4

您可以使用宏MATLAB_MEX_FILE来实现。为了使mex.h正常工作,只有在编译的对象最终被链接到mex文件时才定义该宏。因此,当调用编译器时,mex命令会始终定义该宏。


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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接