- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Labview与matlab混编软件在labview环境下进行可执行化方法
Labview和matlab混编软件在labview环境下
进行可执行化的方法
问题的提出:
Labview下对matlab程序(m文件)的调用采用ActiveX技术,该技术不能脱离matlab运行环境。为解决问题,尝试将m文件编译成dll文件,将Labview对m文件的调用变为Labview对dll文件的调用。但由于研究过程出现的问题和时间的关系,这一问题并未得到解决。在此作一总结,以便后续工作继续进行。
问题的确立:
在本文档中,主要针对在Labview环境编写的软件进行可执行化的讨论,该软件包含了使用matlab节点或ActiveX机制的matlab函数。
因此,在Labview环境下对软件进行可执行化的主要包含了三个方面的内容:
把matlab下编的m文件编译成可被Labview调用的文件形式。例如:动态链接库(dll)、COM组件等。本文档主要对动态链接库方式进行讨论,其它方式将在附录中简要说明。
在Labview下对动态链接库(dll)文件进行调用
在Labview下,将含有dll的VI生成安装文件。该文件可在脱离matlab和labview的目标机上安装、运行。
以上三个步骤如全部完成,则可以说明该应用程序已可以独立的运行发布了。
问题的解决方法及过程:
下面将详细的讨论每个步骤的具体解决方法和过程,以供参考。
把matlab下编的m文件编译成可被Labview调用的文件形式(dll).
解决本问题的方法,在不同的matlab版本中是不同的,在此将对在matlab6.5和matlabr2007a(7.4)两个版本下的方法作一说明。
在Matlab6.5版本中,可以通过两种方式将m文件编译成dll文件。一种是利用matlab为Visual C++发布的一个插件add-in,在Visual C++的环境下,将m文件编译成dll文件。另一种则是使用mcc命令行的方式对m文件直接进行编译,生成dll文件。
在matlabr2007a的版本中,同样可以用两种方式对m文件进行编译生成dll文件。一种是与matlab6.5版本中相同的方式,使用mcc命令对m文件进行编译,其命令的方式方法与matlab6.5版本下相同。另一种是使用deploytool工具,对m文件编译时对各个参数进行配置,因为这种使用的是界面化的方法,所以更加的直观。
下面将对各种编译方法的步骤作一说明:
在6.5版本中使用插件add-in的方法:
使用此方法的思路如下:
创建M文件转换成C或C++代码
创建M文件
转换成C或C++代码
编译dll文件
编写M文件,在matlab中打开Editior,按照matlab程序格式输入代码,实现算法,调试成功。此M文件必须以Function开始,即M文件是函数文件而不能是脚本文件。
完成add-in的连接:
在matlab中运行”mex –setup”,选择Microsoft Visual C/C++ version 6.0选项,安装Matlab Add-in文件到VC++目录,确认;接着运行“mbuild –setup”,选择Microsoft Visual C/C++ version 6.0作为本地默认编译器,然后在matlab下运行“cd(prefdir)”和“mccsavepath”命令,matlab add-in可以脱离matlab环境找到matlab路径。
VC++中的操作为:在VC++中选择“工具 tools -定制(customize)-附加项和宏文件(Add-in and Macro files)页,选中“matlab add-in”。这样, 在VC++工具栏出现matlab add-in 图标,在VC++中新建工程对话框中会出现“matlab project wizard”至此连接工作完成。
打开VC++,在新建工程中选择“matlab project wizard”,按照提示,选择“Shalled M-dll”,输入M文件位置,开始转换。如果M文件没有错误,在工程文件中夹会生成一系列.C文件。其中M文件同名.C文件即为转换的C代码。
然后将此C代码编译成dll文件。选择“编译”菜单,构建dll文件,在文件夹中会生成与工程各相同的dll文件。
使用mcc命令将M文件转换成dll文件。
在使用mcc命令编译之前,需要对matlab的编译器进行设置,可按照上面的方法来进行,即使用mex –setup和mbuild –setup命令。
编写一个M函数文件。
使用以下命令对此函数文件进行编译
mcc -B csharedlib:filename filename1.m filename2.m filename3.m –v
其中-B c
文档评论(0)