原帖與討論: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.exe(76M左右)文件
然後在沒有裝MATLAB的機子上安裝MCRInstaller到D:/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.dll(AMD系列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>