2009-11-24 95 views
9

我創建了一個工作得很好的部署項目,現在我想將其添加到源控制存儲庫供其他人使用。
我面臨的主要問題是deploytool創建的.prj文件包含絕對路徑,這些路徑在其他計算機上不起作用。到目前爲止,我已經試過如下:Matlab部署:添加文件到源代碼管理?

  • 只使用mcc沒有deploytool創建獨立的EXE。這很好,但我可以找到一種方法來創建包含所有內容的最終_pkg.exe。 mcc似乎不能創建這個文件,並且似乎沒有任何其他工具。這是真的嗎?
  • 編輯.prj文件以包含相對路徑而不是絕對路徑。這隻適用於部分原因,因爲.prj文件包含一個名爲MATLABPath的部分,該部分始終由matlab的當前setpath代替。任何使用此文件的人都必須檢查它,因爲它在使用時會被更改。
  • 找到一種方法來生成.prj文件。 mcc文檔說:Project files created using either mcc or deploytool are eligible to use this option.暗示有一種方法可以使用mcc創建.prj文件,但我無法找到如何完成這項工作。

是否有這種情況的解決方案?

+2

你應該把與MathWorks公司的這樣的一個增強請求的飛行。 – 2011-11-07 11:59:16

回答

-2

這是mcc option documentation

什麼我發現最有用的使用MCC是建立一個獨立的EXE:

mcc -C -m <function.m> -a <fig> -a <dll> -a <etc> -d <outputPath> 

-C選項告訴mcc生成CTF文件(這是所有的編譯MATLAB東西存檔)作爲一個單獨的文件。我在一些目標計算機上遇到了麻煩,使用一個編譯好的一個exe文件。

-m選項告訴mcc創建一個exe文件。

的-a選項告訴mcc包括在包中指定的文件。例如,如果你的腳本使用兩個無花果文件和一個數據文件,你需要一個-a來確保它們被放入輸出包中。


告訴MCC使用項目文件(我從來沒有這樣做我自己):

mcc -F <projectfile> 

另外,如果你在Windows上使用R2009a,有一個known bug that requires some manifest manipulation

+1

哇,也許下次你可以費心去閱讀問題本身,而不僅僅是標籤。 – shoosh 2009-11-24 21:13:41

+0

@shoosh - 你說得對,我脫脂的問題,並回答了一些我希望看到的,你問的不是。對於那個很抱歉。我從來沒有用過''deploytool''的方式,所以我完全沒有得到_pkg.exe的意思。在應答之前,我應該先做一點閱讀。 – mtrw 2009-11-24 21:51:00

3

我們用Matlab Builder JA碰到了同樣的情況。不僅路徑是絕對的,Matlab還添加了它在路徑中找到的其他工具箱,這是令人煩惱的,因爲構建機器沒有許多許可證。

所以我們做的是:

  • 手動編輯PRJ文件擺脫了絕對路徑的
  • 檢查其源代碼控制,並與MCC建立
  • 永遠不要簽入PRJ文件在被deploytool觸及後(在編輯器中手動執行所有更改)

我們的修訂控件允許您修改文件而不顯式簽出,因此使用deploytool不是問題。但你爲什麼想要?

不知道最後的打包做什麼,但如果它只是捆綁了MCR與編譯的二進制,我只想寫一個替代品。