未嵌入库中的nifest,设置MATLAB\u MEX\u文件,并打开分析所需数据的生成
为完整起见,请注意,项目配置有一个更正式的“”系统,其中包括一个属性表,但一个松散的属性表足以设置一个简单的MEX项目未嵌入库中的nifest,设置MATLAB\u MEX\u文件,并打开分析所需数据的生成,matlab,visual-studio,mex,Matlab,Visual Studio,Mex,为完整起见,请注意,项目配置有一个更正式的“”系统,其中包括一个属性表,但一个松散的属性表足以设置一个简单的MEX项目 关于-largearydims -largearydims选项是切换到MATLAB中的mex命令,该命令指示不定义MX\u COMPAT\u 32。因此,在VisualStudio中,您不必做任何事情,因为这不是默认定义的。如果需要相反的行为(-compatiblarraydims),请在预处理器部分定义MX\u COMPAT\u 32 libut.lib的作用是什么? 我
关于
-largearydims
-largearydims
选项是切换到MATLAB中的mex
命令,该命令指示不定义MX\u COMPAT\u 32
。因此,在VisualStudio中,您不必做任何事情,因为这不是默认定义的。如果需要相反的行为(-compatiblarraydims
),请在预处理器部分定义MX\u COMPAT\u 32
libut.lib的作用是什么? 我包括libut.lib,它提供了一些很好的函数来检测MEX文件中的中断(CTRL-C)。相关声明(尽管这已经脱离主题):
//在libut(C库)中创建中断处理函数的原型
extern“C”bool utIsInterruptPending();
外部“C”无效utSetInterruptPending(bool);
请允许我就20k:)向您表示祝贺。这次投票应该会让你成功!还有,非常有用的信息。谢谢在GCC上做怎么样?@Royi看起来不错。我想在你的回答中加上这句话。谢谢你(+1)!它是否适用于Visual Studio 2015和Visual Studio 2017?谢谢。Visual Studio 2017 Pro。在一个新的mex项目中,我严格按照说明进行操作。作品很棒:)。这是我在网上找到的最简洁的说明。
Configuration properties -> General:
Set Target Extension to .mexw64
Set Configuration Type to Dynamic Library (.dll)
Configureation poperties -> VC++ Directories:
Add $(MATLAB_ROOT)\extern\include; to Include Directories
Configuration properties -> Linker -> General:
Add $(MATLAB_ROOT)\extern\lib\win64\microsoft; to Additional Library Directories
Configuration properties -> Linker -> Input:
Add libmx.lib;libmex.lib;libmat.lib; to Additional Dependencies
Configuration properties -> Linker -> Command Line:
Add /export:mexFunction to Additional Options