分享免费的编程资源和教程

网站首页 > 技术教程 正文

VS2010+Matlab2010b+win7 vs2010旗舰版

goqiw 2024-11-08 12:16:34 技术教程 27 ℃ 0 评论

最近需要使用VS混编Matlab,老王我总结了一些网上混编的教程,希望大家少走一些弯路。

两个软件的混编,简单来说就是通过调用函数库。如果调用Matlab自身函数直接在VS中配置相应的环境变量就好了,但是如果自己编写的m函数,那就需要通过生成函数库。

VS2010是在MatlabR2010a发布之后发布的,所以老王建议不要使用M2010a及以前的版本。Ps.老王我懒得更换VS版本。

01 matlab编译环境的设置

  • mex -setup

  • mbuild -setup

这两个命令是为M配置编译器,记得都选择相同的VS2010编译器

  • mcc -W cpplib:libName -T link:lib Test.m –C

这个命令中的libName是你想要生成库文件的名称,根据自己需要定义。Test.m是自己编写的m文件,混编的函数在该m文件中定义。通过执行该命令,会生成一下文件。

  • libMyAdd.cpp

  • libMyAdd.dll

  • libMyAdd.h

  • libMyAdd.ctf

  • libMyAdd.lib

02 VS2010项目配置

  1. 将第一步生成的文件拷贝到当前项目工程目录下。、

  2. 项目属性->VC++目录->包含目录:

    <MATLAB>/extern/include

  3. 项目属性->VC++目录->库目录:

    <MATLAB>/lib/win32

    <MATLAB>/extern/lib

    <MATLAB>/extern/lib/win32

    <MATLAB>/extern/lib/win32/microsoft

    这个地方根据自己的需要添加,不了解的人可以都添加上,万一用到了,不会在使用时报错。

  4. 连接器->输入->附加以来项:

    这个地方就是添加自己用到的库文件,如libName.lib,根据自己的需要添加

  5. 代码中添加头文件:

    这个是在M中编译生成的libName.h

到这里基本的软件环境配置就结束了。但是在使用的时候,编译器会有错误:“char16_t”: 重定义;不同的基类型“,解决方法

在自己生成的libName.h文件中添加

  • #ifdef _CHAR16T

  • #define CHAR16_T

  • #endif

也可以在主函数文件中添加:

  • #include <yvals.h>

  • #if (_MSC_VER >= 1600)

  • #define __STDC_UTF_16__

  • #endif

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表