MATLAB012b与vs混合编程——配置vs工作环境

时间:2024-04-03 07:50:08
  注意:最终的最终发现,matlab2012b虽然可以生成链接库等,vs2012也能调用,但是执行不了,找了好久也没有找到好的解决办法,最后改用matlab2013a,它可以直接识别vs2012的编译器,不需要添加别的文件什么的,其他的和以下所写的一样。或者用matlab2010b和vs2010也可以完美匹配哦!!!

 

       在MATLAB编译器的努力下,终于生成了我们需要的头文件和链接库。接下来我们就需要配置VS2012的工作环境,以便于MATLAB生成的各种文件可以再VS中调用。(我的系统和MATLAB都是64位的,如果是32位的系统,将下面绿色的文字相应改成32位系统中的内容)


创建一个VC++项目:
      打开VS2012,在起始页选择“新建项目……”在弹出的对话框中,如下图选择:(其中名称和保存位置我就不多废话了,废话已经够多了,O(∩_∩)O哈哈~)
MATLAB012b与vs2012混合编程——配置vs2012工作环境

点击确定--下一步,在出现的对话框中,选择空项目,如下图所示:
MATLAB012b与vs2012混合编程——配置vs2012工作环境

点击完成,至此,项目就创建完了,下面就是配置的问题了。


配置如下:
  • 第一步:项目—属性链接器常规附加库目录  中添加所生成的.lib文件的路径(最好把它拷贝到新建的工程文件夹下)和MATLAB安装目录下extern\lib和MATLAB安装目录下的extern\lib\win64\microsoft。比如我的MATLAB安装路径是:D:\ProgramFiles\MATLAB\R2012b,则添加的为D:\ProgramFiles\MATLAB\R2012b\extern\lib,以此类推。
      注:如果不知道MATLAB的安装路径在哪里的话,可以在MATLAB的命令框中输入:matlabroot,回车之后的输出值就是MATLAB的安装路径。
  • 第二步:  项目属性—C\C++—常规—附加包含目录 中添加MATLAB编译时所生成的.h文件所在的文件夹路径和MATLAB安装目录下extern\include。
  • 第三步:项目--属性--链接器--输入--附加依赖项  中添加以下lib文件(并不一定是全加进去,有些项目可能只要其中的一两个就可以成功,依自己需要添加),添加文件时要记得用回车隔开。
mclmcr.lib

mclmcrrt.lib

mclbase.lib

mclcommain.lib

MWArray.lib

libmex.lib

libmx.lib

libmat.lib

libeng.lib

 

  • 第四步:项目属性—C\C++—代码生成运行库选择多线程DLL\MD(这个设置很多参考资料中都没有,但正是这个设置解决了我之前一直不能解决的问题:不允许dllimport函数的定义;我新建的一个项目中设置了这一项之后基本什么问题都没有,轻轻松松地编译通过了)
  • 第五步:这个设置也是很多资料中并未提及到的,可能是很多资料中大部分用的是32位的系统和MATLAB等,所以不需要这一步。但64位系统最好设置这一选项,要不然会出各种各样的问题。在 项目--属性 的右上角有一个“配置管理器”,点击之后在出现的对话框中有一个“平台”选项,选择新建,新建平台选择“x64”,从此处复制设置中选择原来的平台(我这里是“win32”)。点击确定。
      
      至此,VS的配置工作就完成了。