- 7
- 0
- 约2.54千字
- 约 6页
- 2017-10-22 发布于北京
- 举报
matlab与C混合编程步骤详解
Matlab文件变为C/C++文件混合编程1使用MATLAB自带的Matlab CompilerMATLABCompiler 是MATLAB自带的一个编译器,它能将m文件转化成C、C++或p等各种类型的源代码,并根据需要生成可执行文件、lib文件(库文件)、dll文件或S函数文件等。Matlab所使用的编译器包括了MATLAB 的C\C++数学库函数以及图形库。必须保证编译器的正确配置,因为编译器使用了C\C++库函数,所以在使用前需要使用mex -setup 和 mbuild -setup两个命令对编译器进行配置。步骤如下:1. 设置Matlab的编译器,使用外部的VC或者gcc等编译器。2. 编译m文件成dll3. 设置VC等的继承环境,设置C需要用到的静态库和动态库4. 编写C调用dll1.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:libhuatu_test.m或命令 2 :mcc -W cpplib: dlltest -T link:libhuatu_test.m命令1生成的是C,命令2生产的是C++。其中,mcc是matlab提供的编译命令(可以理解为gcc),对于这一点,matlab的帮助说明如下:-W lib:stringlink: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】这个地址,再编译就可以通过了。具体应该是调用头文件中的externLIB_band_CPP_APIvoidMW_CALL_CONV Band(intnargout, mwArray B, mwArray A, mwArray N_order, constmwArray Parameter);函数vc引入lib库(转)1、?问题阐述MFC编写程序,都要用到动态链接库,MFC相关的动态库有MFCD42和MFC42等,MFC框架程序已经自动加载,那么如何引入第三方的动态链接库到工程中呢?2、?设置技巧静态链接库是要先把程序中所需要使用的函数编译成机器码,保存在*.lib文件中。编译器会去*.lib中找出所需要的函数,并把这些函数的机器码复制一份,放在可执行文件中。将lib库引入工程,有下面3种方法。第一种方法,lib文件直接加入到工程文件列表中。在VC中打开“FileView”一页,选中工程名,单击鼠标右键,然后在弹出的快捷菜单中选择【Add Files to Project】命令,在
您可能关注的文档
- GB-S系列机械隔膜式计量泵厂家-上海阳光泵业.docx
- GKB智能家居以科技为基点带来生活改变.doc
- glViewport和glOrtho的理解-OpenGL.docx
- GMAT世界的冰与火之歌.docx
- GMAT阅读能力如何快速提高.docx
- GM分段75胜率影之诗提速猫鬼卡组教学.docx
- GOHERAINBOW中文翻译.docx
- gps型PCI授时卡pci授时板卡pci授时.doc
- GetWindowThreadProcessId函数使用方法.doc
- GRE写作重要词汇应用技巧.docx
- 广东省广州省实验中学教育集团2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州大学附属中学2025-2026学年八年级上学期奥班期中物理试题(解析版).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(含答案).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(解析版).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 2026《中国人寿上海分公司营销员培训体系优化研究》18000字.docx
- 《生物探究性实验教学》中小学教师资格模拟试题.docx
原创力文档

文档评论(0)