資料一:
7.3.4 編譯後程式的釋出
無論編譯後産生的是可執行檔案,還是動态連接配接庫,要使它們能夠釋出到别的沒有安裝
MATLAB的計算機上使用,必須在目标計算機上安裝MCR,不能隻是簡單地把編譯後産生的文
件複制到目标計算機上。
可以利用MATLAB指令buildmcr來建立可以釋出給最終使用者的MCR安裝檔案。buildmcr的功能
是建立一個包含MCR需要的所有檔案的ZIP壓縮檔案。buildmcr有如下兩種調用方式:
zipfile = buildmcr
zipfile = buildmcr(dirname)
其中傳回值zipfile是産生MCRInstaller.zip的完整路徑名。在沒有輸入參數的情況下,
buildmcr會把産生的MCRInstaller.zip儲存到位址
$MATLAB/toolbox/compiler/deploy/ /MCRInstaller.zip。
其中$MATLAB代表MATLAB的安裝目錄,代表不同的計算機架構。比如在Windows上,默
認的MCRInstaller.zip的路徑為$MATLAB/toolbox/compiler/deploy/win32/
MCRInstaller.zip。
相應地,在Linux上,預設的MCRInstaller.zip的路徑為$MATLAB/toolbox/compiler/
deploy/glnx86/MCRInstaller.zip。
也可以使用輸入參數dirname來指定MCRInstaller.zip的儲存目錄。buildmcr('.')将把産生
的MCRInstaller.zip儲存到目前工作目錄。
一般來說,需要釋出的檔案有3個:
(1)編譯得到的可執行檔案或者庫函數。
(2)CTF檔案。
(3)MCRInstaller.zip。
在最終使用者的計算機上,首先需要把MCRInstaller.zip解壓,并把MCR中可執行檔案所在目
錄加到系統路徑上,然後就可以使用編譯後的程式了。
注意:MCR不支援在startup.m中使用addpath指令增加搜尋路徑。
startup.m是一個可以讓使用者設定一些關于MATLAB運作的個性化設定。如果你在運作MATLAB
編譯器的計算機上使用startup.m來給MATLAB增加一些特别的搜尋路徑,那麼釋出的程式運
行時會報錯。必須讓addpath指令隻在非釋出情況下才有效。利用isdeployed指令,在
startup.m判斷是否運作相關的指令:
if ~isdeployed
addpath(…)
%其他一些指令
endif
另外,編譯後釋出的程式在運作時需要先把CTF解壓。是以在運作這些程式時需要確定對CTF
檔案所在目錄有寫權利。否則,釋出的程式在執行時會報錯。如果編譯後的程式以CD光牒的方
式釋出,那麼程式必須先複制到硬碟的某個目錄,然後才運作。
資料二:
1、使用matcom方法,但是matcom函數太少,不适合使用。
2、将matlab檔案通過指令生成動态連結庫dll,在VC程式中調用。(注:與資料一的叙述有
沖突這處)
3、直接在客戶機上安裝$MATLAB/toolbox/compiler/deploy/win32目錄下的
MCRInstaller.exe程式(83M),就可以了。或者通過matlab指令生成一個CRInstaller.zip
檔案,解壓縮到客戶機上,并将動态連結庫目錄(??是bin目錄嗎?)添加到PATH環境變
量中。相比之下還是運作MCRInstaller.exe省事一些,雖然比MCRInstaller.zip要大一點。