如何把编写好的matlab程序转换成c/c++语言,如何编译m文件为可执行程序,如何在没有matlab配置环境的机器上运行你编译出来的可执行程序?

一:matlab的编译器设置

执行命令:mbuild -setup,注意中间有一个空格。

>> mbuild -setup
Please choose your compiler for building standalone MATLAB applications: Would you like mbuild to locate installed compilers [y]/n? ySelect a compiler:
[1] Lcc C version 2.4 in D:\MATLAB7\sys\lcc [0] None 

询问是否构建本地安装的编译器,我们先选y。因为我安装的时候,并没有设置matlab的其他编译器选项,所以这里只显示了matlab默认的编译器LCC。你可以选择1,使用它提供的编译器。如果要使用其它的编译器,按n,结果如下:

>> mbuild -setup
Please choose your compiler for building standalone MATLAB applications: Would you like mbuild to locate installed compilers [y]/n? nSelect a compiler:
[1] Borland C++Builder version 6.0
[2] Borland C++Builder version 5.0
[3] Borland C++Builder version 4.0
[4] Borland C++Builder version 3.0
[5] Borland C/C++ version 5.02
[6] Borland C/C++ version 5.0
[7] Borland C/C++ (free command line tools) version 5.5
[8] Lcc C version 2.4
[9] Microsoft Visual C/C++ version 7.1
[10] Microsoft Visual C/C++ version 7.0
[11] Microsoft Visual C/C++ version 6.0 [0] None 

我用的matlab版本是7.0,所以只提供了这几种编译器。其中最常用的vc编译器的版本与我们使用的vs发布版本对应关系为:(摘自:http://www.cnblogs.com/mars9/archive/2012/01/13/2321710.html)

VC6.0 —————— VISUAL STUDIO 6.0VC7.0 —————— VISUAL STUDIO 2002VC7.1 —————— VISUAL STUDIO 2003VC8.0 —————— VISUAL STUDIO 2005VC9.0 —————— VISUAL STUDIO 2008VC10.0 —————  VISUAL STUDIO 2010

由于我安装的的vs版本最低的是2005,而其对应的编译器为vc8.0,所以matlab2007 不支持。所以这里只提供设置的方法。

我们选择选项9:

Compiler: 9The default location for Microsoft Visual C/C++ compilers is C:\Program Files\Microsoft Visual Studio .NET 2003,
but that directory does not exist on this machine.  Use C:\Program Files\Microsoft Visual Studio .NET 2003 anyway [y]/n? n

Please enter the location of your compiler: [C:\Program Files\Microsoft Visual Studio .NET 2003] d:\software\Microsoft Visual Studio 8Please verify your choices: Compiler: Microsoft Visual C/C++ 7.1
Location: d:\software\Microsoft Visual Studio 8 Are these correct?([y]/n): yTry to update options file: C:\Users\bow\Application Data\MathWorks\MATLAB\R14\compopts.bat
From template:              D:\MATLAB7\BIN\WIN32\mbuildopts\msvc71compp.bat Done . . . 

这样就手动设置了vc编译器的路径,并改写matlab的编译器设置bat文件。完了以后,我们就可以用现在设置好的编译器编译M文件。

二:编译M文件

用到的matlab命令是:mcc

命令格式为:
mcc[-options]mifilel[mfile2…mfileN];
options为编译参数;mfilel为待编译的Matlab文件,如果包含多个Matlab文件,可以直接列在mfilel后面。
如:mcc -m ReadComAndDraw.m

执行完了以后,如果没报错,则会生成如下的目录结构:

第三个exe文件就可以执行了。最后两个是matlab将M文件转换得到的C文件。

三:发布可执行文件

上面生成的exe文件如果直接copy到没有matlab环境中的机器上运行时会报错的。因为缺少了相应的库支持。现在你要做的是:打包Matlab组件运行环境(Matlab Component Runtime,MCR)。将MCR与可执行程序一起打包,拷贝到其他没有安装Matlab的机器上,并在该机器上安装MCR,安装完毕即可以直接在该机器上运行编译的Matlab可执行程序。MCR安装文件位于:Matlab安装目录\toolbox\compiler\deploy\win32\MCRInstaller.exe
在2008版的Matlab中,已经内置了Matlab编译发布工具箱,在Matlab命令窗口中运行deploytool命令,即可以调出该工具窗口,通过该工具可以方便、快捷地编译发布Matlab程序。

先写到这里,以后有相关内容再补充!

转载于:https://www.cnblogs.com/wb-DarkHorse/p/3171621.html

matlab编译器和程序发布相关推荐

  1. 如何将MATLAB程序发布为独立的不依赖MATLAB环境可执行的程序包(基于Matlab R2015b版 )

    如何将MATLAB程序发布为独立的不依赖MATLAB环境可执行的程序包(基于MatlabR2015b版) 关键字:MatlabR2015b,可独立运行,可脱离Matlab环境,m文件,Matlab程序 ...

  2. MATLAB程序发布 MCC编译

    原帖: http://www.ilovematlab.cn/thread-51581-1-1.html [原创]MCC编译实例详解今天,读者bequick0522 提出关于mcc编译的问题.现特以此贴 ...

  3. matlab ia模块,MathWorks发布MATLAB和SimulinkR2020a版本,为工程师和科学家提供更多AI功能...

    MathWorks发布MATLAB和SimulinkR2020a版本,为工程师和科学家提供更多AI功能 2020-05-06 环球汽车网 转载 浏览:1912 [行业动态] 半年一次的发行版还包括新产 ...

  4. matlab debug出现k,MATLAB下的程序调试

    文章主要内容摘自<MATLAB 7.0从入门到精通>,求是科技编著. 程序错误一般分为两种:语法错误和逻辑错误.对于语法错误通常MATLAB会报错,并指出错误所在位置方便用户纠正.对于逻辑 ...

  5. Qt之程序发布以及打包成exe安装包

    一.简述 Qt项目开发完成之后,需要打包发布程序,而因为用户电脑上没有Qt配置环境,所以需要将release生成的exe文件和所依赖的dll文件复制到一个文件夹中,然后再用 Inno Setup打包工 ...

  6. matlab compiler 与matlab coder 区别,MATLAB编译器与MATLAB编码器

    MATLAB编译器将您的MATLAB代码(保留为MATLAB .m代码)进行encryption和归档,并将其打包为一个精简的可执行文件(.exe或.dll)包装器. 这是随MATLAB编译器运行时( ...

  7. matlab输入指令错误怎么修改,在MATLAB中运行程序时,显示错误: 此上下文中不允许函数定义。 怎么修改?...

    点击查看在MATLAB中运行程序时,显示错误: 此上下文中不允许函数定义. 怎么修改?具体信息 答:MATLAB程序运行错误后,切换到MATLAB命令行中,观察命令行中的错误信息,确定错误原因. 1. ...

  8. matlab GUI 打包程序(Application Complier生成exe文件和App打包)

    0.写在前面 最近用MATLAB写GUI,用的是Guide,最后需要进行程序的打包,查了一些资料,打包包括exe文件打包和App打包,这里都进行一个学习记录,后面需要可以回来查阅(MATLAB版本:2 ...

  9. 怎么用linux设计一个小程序,“Linux”小程序发布一个月后,我们发现了什么

    原标题:"Linux"小程序发布一个月后,我们发现了什么 这一个月来,这个小程序得到了八千多人的使用,一百多位贡献者实际参与了翻译贡献,其中贡献最高的"Datura st ...

最新文章

  1. IDEA IntelliJ 如何给web项目配置tomcat
  2. Linux: debian/ubuntu下安装和使用Java 11
  3. 面向侧面的程序设计AOP-------《二》本质
  4. SVN 服务端、客户端安装及配置、导入导出项目
  5. 邬贺铨/余晓晖/田溯宁…千家从业者,数十位行业大咖共同烹制了一场怎样的AIoT“盛宴”?
  6. hdu 2550 百步穿杨(大水题)
  7. visio付款流程图_visio流程图软件
  8. Elasticsearch:Simulate index API
  9. Jersey框架:深入研究的终极大招-Jersey用户手册
  10. Spring Initializr文档翻译及源码解读
  11. 数字黑洞java,java解决数字黑洞问题
  12. x310 跑OAI-developnr
  13. 如何避免“被贷款”影响个人信用记录?
  14. 树形管理工具-美美哒
  15. 北漂人的独白,是否有所共鸣
  16. java Swing+mysql+JDBC实现教务系统(源码+数据库+UML图+数据库分析)
  17. Java开发插件及工具
  18. kvm虚拟机扩展磁盘空间
  19. open3d高级API精确控制旋转和移动的视角
  20. 搜狐博客悄悄停止运营

热门文章

  1. Linux centos6.7 关闭防火墙
  2. Hystrix熔断器功能测试示例数据
  3. Jenkins配置jdk(启动报错:Starting Jenkins bash: /usr/bin/java: No such file or directory)
  4. Element-UI分页组件超详细使用示例
  5. thymeleaf获取当前时间并格式化输出
  6. linux mysql makefile_Linux安装库文件(环境变量和makefile)
  7. python 协程原理_Python协程greenlet实现原理
  8. Ping命令及其协议
  9. 【Java多线程编程】典型的多线程同步例程
  10. 如何在一个.c文件里调用另一个.c文件里的变量