您的位置:首页 > 编程语言 > MATLAB

Matlab与C#混合编程环境设置

2012-03-21 19:20 218 查看
应了那句话“C#+Matlab=无尽的烦恼”....

1.<MATLAB>表示MATLAB按照目录

2. 配置过程中的错误,请见:附录

3.文中包含"只针对64位WINDOWS"字眼设置的,在WIN32(X86)环境无需设置

4.本文配置中可能包含多余的一些配置,不过现在的目的是运行成功哈~~~至于精简部分,待我和大家使用时慢慢研究。

/*******************************************

环境:

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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: