- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
matlab和C混合编程步骤详解
Matlab文件变为C/C++文件混合编程
1 使用MATLAB 自带的Matlab Compiler
MATLAB Compiler 是MATLAB自带的一个编译器,它能将m文件转化成 C、C++或p等各种类型的源代码,并根据需要生成可执行文件、lib文件(库文件)、dll文件或S函数文件等。 Matlab所使用的编译器包括了MATLAB 的C\C++数学库函数以及图形库。
必须保证编译器的正确配置,因为编译器使用了C\C++库函数,所以在使用前需要使用 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.0\bin\win32,重启电脑即可。
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:\Program Files\MATLAB\R2011b\extern\include】下。在解决方案资源管理器中,选择项目的属性-C/C++-常规-附加包含目录 中添加【D:\Program Files\MATLAB\R2011b\extern\include】这个地址,再编译就可以通过了。
具体应该是调用头文件中的
extern LIB_band_CPP_API void MW_CALL_CONV Band(int nargout, mwArray B, mwArray A, mwArray N_order, const mwArray Parameter);函数
vc引入lib库(转)
1、?问题阐述
MFC编写程序,都要用到动态链接库,MFC相关的动态库有MFCD42和MFC42等,MFC框架程序已经自动加载,那么如何引入第三方的动态链接库到工程中呢?
2、?设置技巧
静态链接库是要先把程序中所需要使用的函数编译成机器码,保存在*.lib文件中。编译器会去*.lib中找出所需要的函数,并把这些函数的机器码复制一份,放在可执行文件中。将lib库引入工程,有下面3种方法。
第一种方法,lib文件直接加入
您可能关注的文档
最近下载
- 数控加工工艺-全套PPT课件.pptx
- 幼儿园数学领域教育精要——关键经验与活动指导试题.doc
- 护理预见性护理课件.pptx
- 理光RICOH使用手册GRⅡ说明书.pdf
- 义务教育版(2024)信息科技六年级全一册 第4课 输入输出与计算 教案.docx VIP
- 深信服安全评估系统TSS用户手册_v1.7.3.pdf
- BOSE博士 SoundTouch 300 Soundbar 用户指南支持 简体中文.pdf
- 预应力锚杆与锚索支护技术.pptx VIP
- 灾难现场挤压伤挤压综合征救治技术规范.pdf VIP
- 统编版(五四制)道德与法治三年级上册12《家庭的记忆+传统节日中的“家”》(教学设计).docx
文档评论(0)