1
我編寫並編譯了一個MEX函數,可以從MATLAB例程中調用,它在我的計算機上運行良好。但是,當我嘗試讓不同的計算機運行我的例程時,它會打破一個錯誤,指出模塊不存在。我的MEX功能引用了GSL庫和其他一些庫。我想知道是否可以編譯我的MEX函數,以便它是獨立的。當我說獨立時,我的意思是如果我只是將MEX文件複製到另一臺計算機,並且沒有安裝庫或編譯器,它仍然可以工作。使用GNU編譯器生成獨立MEX文件,包括庫
謝謝!
我編寫並編譯了一個MEX函數,可以從MATLAB例程中調用,它在我的計算機上運行良好。但是,當我嘗試讓不同的計算機運行我的例程時,它會打破一個錯誤,指出模塊不存在。我的MEX功能引用了GSL庫和其他一些庫。我想知道是否可以編譯我的MEX函數,以便它是獨立的。當我說獨立時,我的意思是如果我只是將MEX文件複製到另一臺計算機,並且沒有安裝庫或編譯器,它仍然可以工作。使用GNU編譯器生成獨立MEX文件,包括庫
謝謝!
您的外部庫需要是靜態庫。然後有很多方法可以做到這一點:
mex文件本身仍然只能在兼容的系統上運行(64位與32位,匹配libc版本)。
在linux上,檢查你是否正確編譯了類型'ldd mexfile.mexext'。您的外部庫不應顯示在列表中。
另一臺計算機需要有某些MATLAB共享庫才能運行編譯後的代碼。 – Ansari
@Ansari當我編譯我的代碼時,GSL庫不會自動包含在編譯的文件中嗎? – user1586097
不,它們很可能鏈接到您的MEX文件中。 – Ansari