【vc++精品源码栏目提醒】:网学会员vc++精品源码为您提供matlab与C++混合编程步骤详解 - 其它资料参考,解决您在matlab与C++混合编程步骤详解 - 其它资料学习中工作中的难题,参考学习。
MATLAB 文 件 变 为 C/C文 件 混 合 编 程 1 使 用 MATLAB 自 带 的 MATLAB COMPILER MATLAB Compiler 是 MATLAB 自带的一个编译器,它能将 m 文件转化成 C、C或 p 等各种类型的源代码,并根据需要生成可执行文件、lib 文件(库文件)、dll 文件或 S 函数文件等。
Matlab 所使用的编译器包括了 MATLAB 的 CC数学库函数以及图形库。
必须保证编译器的正确配置,因为编译器使用了 CC库函数,所以在使用前需要使用 mex -setup 和 mbuild -setup 两个命令对编译器进行配置。
步骤如下: 1. 设置 Matlab 的编译器,使用外部的 VC 或者 gcc 等编译器。
2. 编译 m 文件成 dll 3. 设置 VC 等的继承环境,设置 C 需要用到的静态库和动态库 4. 编写 C 调用 dll 1.1 设 置 MATLAB 编 译 器 首先要安装 Matlab 编译器,一般来说,在安装了 Matlab 后编译器就己经安装了,所在就只需要对 Matlab 编译器进行设置。
1.1.1 编 译 环 境设 置 首先设置系统的环境变量,点击“我的电脑”属性-系统特性--高级-环境变量-添加系统变量 Matlab 值为 Matlab 的安装路径:G:matlab7.0binwin32,重启电脑即可。
1.1.2 MATLAB7.0 编 译 器 设 置 a 为编译后产生的 MEX 文件进行预配置 在 Matlab 的命令窗口 Command Window 键入“ mex -setup ”命令后,按回车键,安装 Matlab 编译器; b 为产生独立外部应用程序进行预配置 对 Matlab 编译器 mbuild 应用程序进行设置,运行 Matlab ,在 Matlab 的命令窗口 Command Window 键入“ mbuild -setup ”命令后,按回车键,安装 Matlab 编译器; 1.2 将 MATLAB 函 数 转 成 DLL 函数 在 Matlab 的 Command Window /下输入命令: 命令 1 : mcc -W lib:dlltest -T link:lib huatu_test.m 或 命令 2 : mcc -W cpplib: dlltest -T link:lib huatu_test.m 命令 1 生成的是 C,命令 2 生产的是 C。
mcc 其中, 是 matlab 提供的编译命令 , (可以理解为 gcc) 对于这一点,matlab的帮助说明如下: -W lib:string link:lib 其中-W 是控制编译之后的封装格式,cpplib,是指编译成 C的 lib,cpplib 冒号后面是指编译的库的名字,-T 表示目标,link:lib 表示要连接到一个库文件的目标,目标的名字是后面的你写的 m 函数的名字。
生成的文件将会保存在当前目录下,默认的当前目录为:MATLAB 根目录work,找到 dlltest.h 、dlltest.lib 和 dlltest.dll 文件,这三个文件是我们需要的。
1.3 文 件 载 入 VC 中 找到 band.h 、band.lib 和 band.dll 文件,这三个文件是我们需要的。
Band.Cpp 不要?? 放到 VC 工程的目录下, 将 通过解决方案资源管理器中添加现有项, band.h 、band.lib 和 band.dll 添加进去。
此时编译会报错,说 无法打开包括文件:“mclmcrrt.h” 这个文件在哪儿呢?既然是从 matlab 转换成 C的,那么说明这个头文件在 matlab 中 是 提 供 了 的 。
经 过 寻 找 , 发 现 这 个 文 件 在 【 D:ProgramFilesMATLABR2011bexterninclude】下。
在解决方案资源管理器中,选择项目 的 属 性 -C/C- 常 规 - 附 加 包 含 目 录 中 添 加 【 D:ProgramFilesMATLABR2011bexterninclude】这个地址,再编译就可以通过了。
具体应该是调用头文件中的 extern LIB_band_CPP_API void MW_CALL_CONV Bandint nargout mwArray B mwArray A mwArrayN_order const mwArray Parameter函数 vc 引入 lib 库(转) 1、 问 题 阐 述 MFC 编写程序,都要用到动态链接库,MFC 相关的动态库有 MFCD42 和 MFC42等,MFC 框架程序已经自动加载,那么如何引入第三方的动态链接库到工程中呢? 2、 设 置 技 巧 静态链接库是要先把程序中所需要使用的函数编译成机器码,保存在.lib文件中。
编译器会去.lib 中找出所需要的函数,并把这些函数的机器码复制一份,放在可执行文件中。
将 lib 库引入工程,有下面 3 种方法。
第 一 种 方 法 , LIB 文 件 直 接