0
Posted on 23:37:00 by Unknown and filed under

  新版本的编译方式和 6.x 有所不同。根据我的理解,在 6.x 里面编译一个程序是先把 m 文件转换成 C/C++ 文件,然后再编译,好处是速度快,可以自行更改代码。但是转换过程存在技术难度,不能保证所有的函数都顺利转换。在 7.x 编译器仅仅是生成一些特定的接口函数,具体的函数还是原来的函数,不过是通过 MCR 来运行。好处是编译后的程序基本都能运行。

  希望 MathWorks 将来能提供更完美的混合编程、编译发布的方法。

  下面进入正题,若想在没有安装 MATLAB 的机器上运行由 MATLAB 程序编译成的可执行文件,必须先安装 MCR(MATLAB Component Runtime)。

  安装程序可以在:$MATLAB\toolbox\compiler\deploy\win32\ 找到。也可以由下面的命令生成一个压缩包:

zipfile = buildmcr
zipfile = buildmcr(dirname)

其中返回值zipfile是产生MCRInstaller.zip的完整路径名。
我试验的时候,生成的压缩包目录结构有些问题,不过不影响使用。

  如果不采用自动安装,那么在把所有的文件解压缩后,需要在环境变量 PATH 里面加入相应的目录(一般为\runtime\win32)。

  因此,若想把 MATLAB 程序作为独立应用程序发布,需要三个文件:

  1. 编译得到的可执行文件。
  2. 与可执行文件对应的 CTF 文件。
  3. MCR安装程序。

  编译后的程序运行的时候会先解压缩 CTF 文件,所以如果对可执行文件所在的目录没有写权限会出错。

  如果 MCR 安装不上或者运行出错的时候,可以参考:MCRinstaller.exe 安装突然中断问题的解决

0
评论 : MATLAB 程序发布为独立应用程序

发表评论