m文件转c/c++后的打包问题

王朝c/c++·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

发信人: fork (撒哈拉沙漠的沙), 信区: Matlab

标 题: m文件转c/c++后的打包问题

发信站: BBS 哈工大紫丁香站 (Sun Aug 1 15:29:03 2004)

m文件转c/c++后的打包问题

mcc后的程序是否可以完全脱离matlab运行呢,一般情况下可以遵循一个原则,先用“mcc

-B sglcpp 文件名” 来试验,matlab会生成一个可执行文件,然后(就在同一台计算机

上)运行这个这个可执行文件,如果能运行成功,则可以保证它能在完全脱离malab的环境中运行。关于完全脱离matlab运行有几点需要注意:

1. 将“MATLAB6p5\extern\lib\win32”目录下“mglinstaller.exe”文件考出,在目标

机器上运行,解压时注意要保持解压后的路径与第一台计算机上matlab的安装路径一

致。当然你也可以直接把它解压到跟你要运行的那个程序的同一目录,或者是系统目

录,但我不建议这么做,为什么?因为你有可能需要手工拷贝一些工具箱中的文件,

而这些文件在目标机器上的位置必须跟第一台机器的位置相同。这一点我可以解释一

下,用“mcc -B sglcpp 文件名”编译下面的程序:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function fork3(f_image)

I = imread(f_image);

imshow(I)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

在编译后的主文件“fork3_mainhg.cpp”中可以找到如下内容:

...................

static const char * path_list_[1] = { "c:\matlab6p5\toolbox\images\images" };

...................

这说明该路径在程序中是以字符串的形式“硬编码”的,并不能在程序执行过程中动态

的自动的搜索目标机器上matlab工具箱的路径,因此两台机器上的路径要保持一致。

2. 另外从这个字符串可以看出,该程序的运行可能会需要用到图像处理工具箱中的一些东

西(图片,dll等)但“mglinstaller.exe”并不打包工具箱中的东西,因此应该按此路

径手工拷贝工具箱中的相关文件。如果不能确定那些是“相关文件”,那就全拷吧。

如果程序中用到了另外一些工具箱,那么都要进行手工拷贝。

3. 上面两步完成之后,还有一件事情要做,将这个路径C:\MATLAB6p5\bin\win32(根据你

的具体情况有所不同)加入到系统 环境变量path中去。(什么是环境变量path,在DOS

窗口中键入“path”,那就是环境变量)加入的方法是(win2k)-->我的电脑--->右键-

-->属性--->高级--->环境变量......剩下的就是找到path做修改了。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航