2014-11-06 51 views
0

我創建了使用MATLAB的編碼器工具包中的MEX文件可創建MEX文件,和它的作品在我的電腦上完全正常的,但是,當我把它給別人供他們使用,它錯誤,並不會工作。我怎樣才能讓由編碼器工具包被別人

什麼是合理分配,並允許其他人可以使用我的MEX文件/代碼的正確步驟是什麼?

在附註中,(我不知道這對我的問題有多大影響),但是在編碼器創建的C代碼文件中,它具有導致我計算機上的目錄的變量,而不是相對路徑。

+1

你給他們編譯的MEX文件或源代碼? MEX文件是二進制共享庫,必須在目標平臺上編譯才能生成正確的可執行文件(Windows,Linux,OSX) – Amro 2014-11-06 20:54:55

+0

如何生成MEX以及在嘗試在不同的目錄上運行它時收到什麼錯誤消息電腦?通常情況下,除了生成的MEX文件(我認爲)之外,您不需要其他任何東西,但在分發MEX文件之前,您應該修復目錄問題。但是,正如@Amro所指出的那樣,您只能在MATLAB中使用MEX文件,所以客戶端計算機必須安裝MATLAB。 – am304 2014-11-06 21:03:49

+1

你的機器和你的同事的機器的架構是一樣的嗎?對於MATLAB編碼器生成的MEX文件,您的同事使用的MATLAB版本應該至少與用於生成MEX文件的版本一樣新。遇到的顯式錯誤也會非常有幫助。 – 2014-11-07 07:25:31

回答

0

安裝MCR(我原來的建議)只適用於編譯器生成的代碼,但你仍然需要一個兼容libmx和libmat。我想也許他們可以通過安裝程序獲得它們,但是如果它們不兼容(v6 vs v7),他們真的需要更新MATLAB。

一般情況下,避免在部署的代碼路徑。

+1

OP使用MATLAB Coder而不是MATLAB Compiler。編碼器創建不依賴於MCR的C/C++源代碼。 – Amro 2014-11-06 20:51:06

+0

@Amro它至少仍需要libmx和libmat共享庫。 (在這種情況下,我現在的答案仍然是錯誤的,我想到了它)。函數本身肯定是獨立的,雖然... – chappjc 2014-11-06 20:52:57

+0

好吧,但是你不能在MATLAB之外運行MEX函數。 MCR僅用於運行MATLAB不可用的部署(思考封裝)應用程序。顯然,如果沒有必要的MX/MEX庫,您將無法使用MEX文件。 – Amro 2014-11-06 20:58:12