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

类别:编程语言 点击:0 评论:0 推荐:
发信人: 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做修改了。

本文地址:http://com.8s8s.com/it/it25656.htm