找回密码
 注册
Simdroid-非首页
查看: 184|回复: 3

关于编译后程序的发布

[复制链接]
发表于 2007-12-24 17:27:45 | 显示全部楼层 |阅读模式 来自 新加坡
在拙作《深入浅出matlab7.x混合编程》中,关于编译后的程序发布,是这样介绍的:


  1. 7.3.4  编译后程序的发布
  2. 无论编译后产生的是可执行文件,还是动态连接库,要使它们能够发布到别的没有安装MATLAB的计算机上使用,必须在目标计算机上安装MCR,不能只是简单地把编译后产生的文件复制到目标计算机上。
  3. 可以利用MATLAB命令buildmcr来创建可以发布给最终用户的MCR安装文件。buildmcr的功能是创建一个包含MCR需要的所有文件的ZIP压缩文件。buildmcr有如下两种调用方式:

  4. zipfile = buildmcr
  5. zipfile = buildmcr(dirname)

  6. 其中返回值zipfile是产生MCRInstaller.zip的完整路径名。在没有输入参数的情况下,buildmcr会把产生的MCRInstaller.zip保存到地址$MATLAB/toolbox/compiler/deploy/<arch> /MCRInstaller.zip。
  7. 其中$MATLAB代表MATLAB的安装目录,<arch>代表不同的计算机架构。比如在Windows上,默认的MCRInstaller.zip的路径为$MATLAB\toolbox\compiler\deploy\win32\ MCRInstaller.zip。
  8. 相应地,在Linux上,默认的MCRInstaller.zip的路径为$MATLAB/toolbox/compiler/ deploy/glnx86/MCRInstaller.zip。
  9. 也可以使用输入参数dirname来指定MCRInstaller.zip的保存目录。buildmcr('.')将把产生的MCRInstaller.zip保存到当前工作目录。
  10. 一般来说,需要发布的文件有3个:
  11. (1)编译得到的可执行文件或者库函数。

  12. (2)CTF文件。
  13. (3)MCRInstaller.zip。
  14. 在最终用户的计算机上,首先需要把MCRInstaller.zip解压,并把MCR中可执行文件所在目录加到系统路径上,然后就可以使用编译后的程序了。
  15. 注意:MCR不支持在startup.m中使用addpath命令增加搜索路径。
  16. startup.m是一个可以让用户设置一些关于MATLAB运行的个性化设置。如果你在运行MATLAB编译器的计算机上使用startup.m来给MATLAB增加一些特别的搜索路径,那么发布的程序运行时会报错。必须让addpath命令只在非发布情况下才有效。利用isdeployed命令,在startup.m判断是否运行相关的命令:

  17. if ~isdeployed
  18.              addpath(…)
  19.              %其他一些命令
  20. endif

  21. 另外,编译后发布的程序在运行时需要先把CTF解压。所以在运行这些程序时需要确保对CTF文件所在目录有写权利。否则,发布的程序在执行时会报错。如果编译后的程序以光盘的方式发布,那么程序必须先复制到硬盘的某个目录,然后才运行。

复制代码


我自己在全新安装的Windows上测试这些步骤后没发现什么问题。不过今天偶然看到下面的读者评语,其中提到他按照这些步骤没能成功地发布所编译好的程序。但并没有具体提到是什么问题。

http://product.dangdang.com/product.aspx?product_id=9051767

我打算按照读者意见把原稿修改,改正其中的错误,再加入针对新版matlab所需要的改动。不过对上面的读者评语中提到的问题不甚了解。请问论坛上有人有类似的问题吗?如果有的话,你是如何解决的呢?

谢谢!顺祝新年快乐!
发表于 2007-12-24 23:05:23 | 显示全部楼层 来自 北京海淀
Simdroid开发平台
我拿前段时间编的一个几百行的GUI(没用GUIDE)编译成可执行文件试过了,没什么问题。XP+2007a
回复 不支持

使用道具 举报

 楼主| 发表于 2007-12-24 23:38:01 | 显示全部楼层 来自 新加坡
谢谢版主的回复以及把话题加亮。

我自己是在Windows XP和Windows2003上用matlab 7.0, 7.0.1, 7.0.4等测试过,没有发现问题。
回复 不支持

使用道具 举报

发表于 2007-12-27 20:03:37 | 显示全部楼层 来自 四川成都

谢谢版主

我准备试一下!
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-19 17:30 , Processed in 0.035399 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表