2015-07-20 44 views
0

我正在使用MATLAB R2015a應用程序編譯器。選擇我的主要m文件後,MATLAB發現應用程序運行所需的一些文件,但在編譯和運行我的應用程序後,編譯後的應用程序無法從已安裝的工具箱(第三方工具箱)中找到某些特定的m文件。如何將m文件複製到MATLAB編譯應用程序中的特定文件夾?

現在我想複製所有工具箱文件到目標文件夾C:\Users\My_Account\AppData\Local\Temp\My_Account\mcrCache8.5\Program_70\DDMDDM是我的工具箱文件夾,MATLAB根據上面提到的嵌套文件自動創建它。我想將其他文件添加到此文件夾。我怎樣才能做到這一點?這是解決這個問題的好方法嗎?

+0

你應該知道爲什麼編譯器沒有在第三方工具箱中找到文件。複製到mcr的臨時文件夾不是一個好的解決方案。編譯時可以添加其他文件。 – Navan

回答

1

你試圖做的事情不會奏效。

當您使用MATLAB編譯器編譯應用程序時,它會查找您的主函數依賴的所有代碼,對其進行加密,並將其打包成稍後將在MATLAB編譯器運行時(MCR)中執行的可執行文件。

MCR只能執行已經以這種方式加密和打包的代碼 - 無法讓它執行常規的未加密的MATLAB文件。因此,將事情轉儲到MCR用於解包代碼文件的臨時文件夾中將無法實現任何功能。

相反,試圖找出爲什麼,在依賴性分析期間,MATLAB編譯器沒有找到您的主函數依賴的所有文件。

可能發生這種情況的原因有很多種 - 依賴性分析並不完美。例如,如果您的代碼調用eval('myfunction'),依賴關係分析將不會找到myfunction。 I answered最近另一個問題是另一個原因是問題。

在這種情況下,你可以明確告訴MATLAB編譯器有一個依賴於myfunction,使用%#function編譯。在包含隱藏調用myfunction,在文件的頂部(實際上任何地方,但通常你把它放在頂部)的文件,把

%#function myfunction 

MATLAB編譯器將迫使這是個依賴性並將其包含在包裝中。

或者,mccdeploytool應用程序設置包裝時,你可以手動添加myfunction到包裝自己(雖然這會再找不到的東西,myfunction取決於)。

相關問題