MATLAB 2008-01-19 11:49:18 閱讀196 評(píng)論1 字號(hào):大中小
轉(zhuǎn)自:http://bbs.bc-cn.net/dispbbs.asp?boardid=216&id=149780
這是我親自做的,能在沒有安裝MATLAB的機(jī)子上成功實(shí)現(xiàn)運(yùn)行
今天花了好幾個(gè)小時(shí)才整理出此詳細(xì)步驟,特拿出來與大家分享
具體步驟如下:(此方法適用于MATLAB 7.0)
1.安裝C編譯器(前提是你的電腦已經(jīng)安裝了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(可執(zhí)行)文件
>> 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.將編譯生成的文件發(fā)布到?jīng)]有MATLAB的電腦上
先在 $MATLAB\toolbox\compiler\deploy\win32下找MCRInstaller.exe(76M左右)文件
然后在沒有裝MATLAB的機(jī)子上安裝MCRInstaller到D:\MATLAB Component Runtime
(目錄中,最好不要有空格,如用 D:\MCR 就可以了)
設(shè)置環(huán)境變量,右鍵點(diǎn)擊“我的電腦”-》屬性-》高級(jí)-》環(huán)境變量-》新建
變量名:Path
變量值:D:\MCR\v70\runtime\win32
然后運(yùn)行exe文件,每次都是出現(xiàn)DOS界面后,幾秒鐘就自動(dòng)關(guān)閉了
GUI界面一次都運(yùn)行不出來,也沒有錯(cuò)誤信息提示
解決辦法:
{ 因?yàn)?font face="Times New Roman">MATLAB需要用到處理器的數(shù)學(xué)運(yùn)算部分(MATLAB默認(rèn)用的是INTEL的數(shù)學(xué)處理單元),故需要設(shè)置一下BLAS(Basic Linear Algebra Subroutines,就是"基礎(chǔ)線性幾何子程序"的意思)環(huán)境變量. 首先請(qǐng)確認(rèn)你的MATLAB的文件夾中有如下文件:atlas_Athlon.dll(AMD系列的請(qǐng)用這個(gè)), atlas_P4.dll(P4的用這個(gè)),atlas_PIII.dll(P3的用這個(gè)),atlas_PII.dll(P2的用這個(gè)),這些是對(duì)應(yīng)處理器的數(shù)值運(yùn)算優(yōu)化文件 }
先找到 $MATLAB7\bin\win32目錄下的atlas_Athlon.dll(AMD系列CPU使用)和atlas_P4.dll(奔4用)文件,放到MCR目錄中(隨便),然后設(shè)置環(huán)境變量
變量名:BLAS_VERSION
變量值:D:\MCR\v70\atlas_Athlon.dll
這樣設(shè)置以后,再運(yùn)行exe文件就OK了。
注意事項(xiàng):
編譯過程中,很可能會(huì)有如下報(bào)錯(cuò)
>> 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'
>>
這種情況是因?yàn)槲覍?#8220;close;contentwindow”語句寫在按鈕控件屬性的“callback”里面了
{但是如果只是單個(gè)語句的話,是可行的(比如:只有contentwindow)}
此時(shí),只要將“close;contentwindow”語句寫在M文件中按鈕的“callback”里,再編譯就不會(huì)出錯(cuò)了
聯(lián)系客服