进行MATLAB/C C++混合编程时,由于MATLAB自带的C语言编辑器不是很给力,我们一般会在别的IDE调试好,比如Visual Studio. 在VS中建立并编译C mex文件是一般要建立一个动态链接库项目,然后手动配置项目属性,最后生成。
手动配置项目属性在每次新建项目都需要进行以下这几步工作。
-
打开项目属性配置页,C++ -> 附加包含目录 加入MATLAB安装目录下的 \extern\include 路径。
-
链接器 -> 附加库目录 加入MATLAB的 \extern\lib\win32\microsoft 路径。
-
链接器 -> 输入 -> 附加依赖项 输入libmx.lib libeng.lib libmat.lib libmex.lib 这四个lib文件。
-
修改 配置属性 常规 配置类型, 更改为“动态库.dll”
详见这几篇博客:
Mex文件在VS2010中调试方法
在VS2010下编译、调试和生成mex文件
这样的步骤较为繁琐,VS提供了一个项目模板MEX Function Templates,作为上述步骤的集成。它可以自动完成配置,免去手动配置的麻烦。在这个项目模板中直接编写.c源文件、支持多个文件,显得非常方便。
具体建立方法如下:
-
在新建项目-> 联机->Visual C++找到这个模板,然后建立你的项目
Fig 1 -
弹出的提示框会自动搜索你的MATLAB路径,并自动配置好你所需要的include, link, output等
Fig 2.1 Fig 2.2 -
直接编写你的源文件。
Fig 3 -
右键生成,就可以在:项目目录\bin\x64\Debug 找到你的mex64动态库。此时可以把MATLAB的工作目录移动到这里,然后去测试它
Fig 4 -
最后,调试是不能直接在VS中进行的,只能这样: (1)打开MATLAB;(2)工具->附加到进程->选择“MATLAB R2015b”; (3)在MATLAB中输入命令,则会自动跳转到VS中的断点。
Fig 5.1 Fig 5.2