在MATLAB7.0中編譯與發佈可執行文件的詳細步驟

原帖與討論:http://bbs.bc-cn.net/dispbbs.asp?boardid=216&id=149780

這是我親自做的,能在沒有安裝MATLAB的機子上成功實現運行

今天花了好幾個小時才整理出此詳細步驟,特拿出來與大家分享

具體步驟如下:(此方法適用於MATLAB 7.0

1.安裝C編譯器(前提是你的電腦已經安裝了VC

>> mbuild -setup

Please choose your compiler for building standalone MATLAB applications:

Would you like mbuild to locate installed compilers [y]/n? y

Select a compiler:

[1] Lcc C version 2.4 in D:/MATLAB7/sys/lcc

[2] Microsoft Visual C/C++ version 6.0 in D:/Microsoft Visual Studio

[0] None

Compiler: 2

Please verify your choices:

Compiler: Microsoft Visual C/C++ 6.0

Location: D:/Microsoft Visual Studio

Are these correct?([y]/n): y

Try to update options file: C:/Documents and Settings/Leki/Application Data/MathWorks/MATLAB/R14/compopts.bat

From template:              D:/MATLAB7/BIN/WIN32/mbuildopts/msvc60compp.bat

Done . . .

--> "D:/MATLAB7/bin/win32/mwregsvr D:/MATLAB7/bin/win32/mwcomutil.dll"

DllRegisterServer in D:/MATLAB7/bin/win32/mwcomutil.dll succeeded

--> "D:/MATLAB7/bin/win32/mwregsvr D:/MATLAB7/bin/win32/mwcommgr.dll"

DllRegisterServer in D:/MATLAB7/bin/win32/mwcommgr.dll succeeded

2.MATLAB中,將M文件編譯成exe(可執行)文件

>> mcc -m guimcc

  To get started, select MATLAB Help or Demos from the Help menu.

Warning: No matching builtin function available for D:/MATLAB7/toolbox/simulink/simulink/set_param.bi

>>

上面警告的解決方法:

/MATLAB7/toolbox/compiler/deploy/matlabrc.m 中的  

81 set_param(0,'PaperType',defaultpaper);  

82 set_param(0,'PaperUnits',defaultunits);  

註釋掉之後,又重新編譯了一次,沒有警告信息出來了

3.將編譯生成的文件發佈到沒有MATLAB的電腦上

先在 $MATLAB/toolbox/compiler/deploy/win32下找MCRInstaller.exe76M左右)文件

然後在沒有裝MATLAB的機子上安裝MCRInstallerD:/MATLAB Component Runtime

(目錄中,最好不要有空格,如用 D:/MCR 就可以了)

設置環境變量,右鍵點擊“我的電腦”-》屬性-》高級-》環境變量-》新建

變量名:Path  

變量值:D:/MCR/v70/runtime/win32

然後運行exe文件,每次都是出現DOS界面後,幾秒鐘就自動關閉了

GUI界面一次都運行不出來,也沒有錯誤信息提示

解決辦法:

{ 因爲MATLAB需要用到處理器的數學運算部分(MATLAB默認用的是INTEL的數學處理單元),故需要設置一下BLAS(Basic Linear Algebra Subroutines,就是"基礎線性幾何子程序"的意思)環境變量.  首先請確認你的MATLAB的文件夾中有如下文件:atlas_Athlon.dll(AMD系列的請用這個)  atlas_P4.dll(P4的用這個)atlas_PIII.dll(P3的用這個)atlas_PII.dll(P2的用這個),這些是對應處理器的數值運算優化文件 }

先找到 $MATLAB7/bin/win32目錄下的atlas_Athlon.dllAMD系列CPU使用)和atlas_P4.dll(奔4用)文件,放到MCR目錄中(隨便),然後設置環境變量

變量名:BLAS_VERSION

變量值:D:/MCR/v70/atlas_Athlon.dll

這樣設置以後,再運行exe文件就OK了。

注意事項:

編譯過程中,很可能會有如下報錯

>> mcc -m interface

  To get started, select MATLAB Help or Demos from the Help menu.

??? Unable to locate close;contentwindow as a function on the MATLAB path

Warning: An object instance still exists.

Use the objectdirectory command to see a count of existing instances.

??? Depfun error: 'Unable to locate close;contentwindow as a function on the MATLAB path'

>>

這種情況是因爲我將“close;contentwindow”語句寫在按鈕控件屬性的“callback”裏面了

{但是如果只是單個語句的話,是可行的(比如:只有contentwindow}

此時,只要將“close;contentwindow”語句寫在M文件中按鈕的“callback”裏,再編譯就不會出錯了

 

http://dev.xuezhishi.net/program/VC/2007-07-03/18738.html
<script type="text/javascript"> cpro_client='romber_cpr'; cpro_cbd='#trans'; cpro_cbg='#trans'; cpro_ctitle='#1A6BE6'; cpro_cdesc='#444444'; cpro_curl='#FFFFFF'; cpro_clink='#000000'; cpro_flush=4; cpro_w=500; cpro_h=200; cpro_template='text_noframe_500_200'; </script> <script language="JavaScript" src="http://cpro.baidu.com/cpro/ui/cp.js" type="text/javascript"></script>
-
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章