VS2010与Matlab2010b混合编程
环境:
1.VS2010
2.MATLAB 2010b
3.WINDOW 7 (X64)
1.Matlab环境设置
要建立独立运行的C应用程序,系统中需要安装Matlab、Matlab编译器、C/C++编译器以及Matlab C/C++数学库函数和图形库函数。
Matlab编译器使用mbuild命令可以直接将C/C++源代码编译为独立运行程序,在这些源代码中可以使用Matlab提供的接口来调用Matlab数学库函数。
虽然生成的可执行程序可以脱离Matlab环境运行,但是它需要Matlab C/C++数学库文件或者图形库文件的支持才能运行。但如果C/C++源代码完全是按传统C/C++源代码语法规则编写,没有包含Matlab数学库和图形库的调用,则不仅可以独立与Matlab环境,也不需要那两个库函数的支持。
在 Matlab 的Command Window 下输入命令
mbuild – setup
操作过程如下图:

然后输入命令
mex – setup
以类似的方法配置编译器。Matlab 的配置完成。
2.VS环境设置
(1)设置Include 和Library 目录
项目右键->属性->VC++目录->包含目录:添加
<MATLAB>\R2010b\extern\include\win64
<MATLAB>\R2010b\extern\include\
项目右键->属性->VC++目录->库目录:添加
<MATLAB>\R2010b\extern\lib\win32\microsoft
<MATLAB>\R2010b\extern\lib\win64\microsoft
(2)设置工程目录
项目右键->属性->C/C++->常规->附件包含目录:添加
<MATLAB>\R2010b\extern\include\win64
<MATLAB>\R2010b\extern\include\
项目右键->属性->链接器->常规:添加
<MATLAB>\R2010b\extern\lib\win32\microsoft
<MATLAB>\R2010b\extern\lib\win64\microsoft
项目右键->属性->链接器->输入->附件依赖性:添加
libeng.lib
libmat.lib
libmex.lib
libmx.lib
注:1.lib文件包含在<MATLAB>\R2010b\extern\lib\win64\microsoft,可根据需要增减
2.附件依赖性在VS2010前以空格隔开,在VS2010后使用;隔开。
项目右键->属性->链接器->高级->目标计算机:更改(只针对64位WINDOWS)
MachineX86 -> MachineX64
注:分析原因为MATLAB根据计算机平台选择了X64编译环境,如此处不修改会出现 错误3
(3)配置管理器设置(只针对64位WINDOWS)
生成->配置管理器->平台:更改
Win32->X64
注:分析原因为配合链接器中目标计算机的修改,如此处不修改会出现 错误4
截图:


3.系统(Windows)环境设置
我的电脑->属性->高级系统设置->高级->环境变量->Path,添加:
<MATLAB>\R2010b\bin;<MATLAB>\R2010b\extern\lib\win64\microsoft;<MATLAB>\bin\win64
注:1.Windows7的情况下,“用户变量”和“系统变量”都需 添加,如不添加,运行时会出现 错误5
2.哈哈,别忘记重启哈,重启后生效
OK!配置就此结束,现在就开始engOpen吧!!对了,别忘记添加#include "engine.h"。
附录:错误情况及解决
2.提示:“libeng.lib libmat.lib"无法打开
解决:附件依赖性在VS2010前以空格隔开,在VS2010后使用;隔开。
3.提示:“ "error LNK2019: 无法解析的外部符号 _interp1Initialize,该符号在函..."”
解决:操作如2.VS环境设置中的(2) 项目右键->属性->链接器->高级->目标计算机:更改...及(3)
4.提示:“ "模块计算机类型“X86”与目标计算机类型“x64”冲突..."”
解决:操作如2.VS环境设置中的(3)
4.提示:“ 系统丢失libeng.dll..."”
解决:操作如 3.系统环境设置
1.mbuild – setup后没有“VS2010”选项
解决:MATLAB 2010b 之后包含对VS2010编译器的支持,2010a及之前版本不包含支持。如果MATLAB环境较低,Matlab官方有一个补丁(http://www.mathworks.com/support/solutions/en/data/1-D5W493/?solution=1-D5W493)
VS2010与Matlab2010b混合编程的更多相关文章
- VS2010和matlab2010混合编程中char16_t重定义的问题
原因是VS2010中的yvals.h添加了char16_t的定义,而Matlab的matrix.h也包含对char16_t的定义,所以同时包含这两个头文件的话,会导致重复定义char16_t的错误.只 ...
- matlab 2012 vs2010混合编程
电脑配置: 操作系统:window 8.1 Matlab 2012a安装路径:D:\Program Files\MATLAB\R2012a VS2010 : OpenCV 2.4.3:D:\Progr ...
- matlab和C/C++混合编程--调用opencv
最近的我们已经将整个项目搭起来了,项目比较复杂.由于我们做的是检索系统,所以我们用asp.net(c#)做了网页,但是算法的实现是在matlab下,所以我们不得不用matlab生成动态链接库dll,然 ...
- matlab和C/C++混合编程--Mex
最近的项目需要matlab和C的混合编程,经过一番努力终于完成了项目要解决的问题.现在就将Mex的一些经验总结一下,当然只是刚刚开始,以后随着学习的深入继续添加.首先讲讲写Mex的一些常规规定,然后我 ...
- C++和C#混合编程
最近需要利用C++和C#混合编程,然后就写了一个C#调用C++生成的DLL的DEMO.困扰我好久的就是C#中string类型在C++里面怎么表达,现在把C++生成DLL供C#调用的流程写出来. 源码: ...
- C#与MATLAB混合编程
C#和MatLab的混合编程,充分利用了winform的直观显示和matlab的强大计算能力.在此以一个小例子的形式给大家讲述一下二者混合编程的实现. 一.软件的配置说明 C#版本:VS2010 ma ...
- matlab和C/C++混合编程--Mex (六)参数传递
最近的项目需要matlab和C的混合编程,经过一番努力终于完成了项目要解决的问题.现在就将Mex的一些经验总结一下,当然只是刚刚开始,以后随着学习的深入继续添加.首先讲讲写Mex的一些常规规定,然后我 ...
- 算法库:Matlab与C++混合编程
算法库:Matlab与C++混合编程 最近做光流算法预演过程中,下载的源码中涉及到了Matlab和C++的混合编程.在同事Matlab2014的环境下,程序到是一下就运行通过了.但在我这Matlab2 ...
- matlab封装DLL混合编程总结
最近做了个项目要用到matlab做些算法处理,然后用.net项目调用这个类,我把这个matlab封装dll总结了下如下: matlab是商业数学软件,优势是在算法开发上面有很强的功能,提供了很多数学算 ...
随机推荐
- 汇编语言实验1 & macOS下DOSBox的安装
一.macOS下DOSBox的安装 1.在官网下载DOSBox-0.74.dmg 打开,此时默认z盘 一番折腾,终于搞定debug 然后为了不用每次都执行mount,遂更改配置文件自动挂在目录 再次打 ...
- servlet进行用户名和密码校验
效果截图: 链接:https://pan.baidu.com/s/1eR051bUPerpEM3TDLtq9Xw 提取码:rjpy
- java AQS 一:
最近加班太多,很久没有更新博客了,周末看了下阿里大神并发的书籍,把知识点做个记录. 一:线程安全的定义 当多个线程并发访问某个类时,如果不用考虑运营环境下的调度和交替运行,且不需要额外的辅助,这里认为 ...
- 微信h5支付出现“商家参数格式有误,请联系商家解决”
在浏览器进行微信h5支付时出现:
- Linux常用shell命令
1.>>>>>刚安装好的ubuntu需要为root创建密码[解决]passwd root 2.>>>>>安装完ubuntu后需要更新[解决] ...
- Linux VPS自动定时备份网站文件和MYSQL数据库到FTP空间(LNMP)
如果我们网站更新不是很频繁,我们可以定期手动进行备份网站文件和MYSQL数据库导出.如果我们网站数据更新频繁,且数据尤为重要,建议要采用定期自动 备份,至少需要多备份数据,无论我们选择何种优秀的VPS ...
- 阶段01Java基础day25网络编程
26.01_网络编程(网络编程概述) A:计算机网络 是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源 ...
- 机器学习之朴素贝叶斯&贝叶斯网络
贝叶斯决决策论 在所有相关概率都理想的情况下,贝叶斯决策论考虑基于这些概率和误判损失来选择最优标记,基本思想如下: (1)已知先验概率和类条件概率密度(似然) (2)利用贝叶斯转化为后验概 ...
- vs-code 基础设置
汉化设置: 最新版的vscode 汉化需要两步 1 ctrl+shift+p 在顶部输入框中输入 language 后选择 configure Display Language 后进入 第二张 ...
- Linux一些常用操作命令
1.创建一个等同于root管理员的用户 useradd -u 0 -o -g root -G root -d /home/username username usermod -u 0 -o ...