2014-10-03 121 views
2

我正嘗試使用Mathworks的instructions構建並運行Matlab引擎示例「engdemo.c」。當我嘗試用命令!./engdemo運行它,我得到了以下錯誤:在Mac OSX上的engdemo.c - 無法啓動MATLAB引擎

matlab: Command not found. 
Can't start MATLAB engine 

我沒有在其他相關的StackOverflow職位找到了解決這個(如matlab engine 「Can't start MATLAB engine"How solve the 「Can't start MATLAB engine」 command? [closed]

我將csh安裝在/ bin/csh(通過鍵入which csh進行檢查)。

我在我的PATH變量上有Matlab,並且我已經根據Mathworks instructions爲Mac OSX設置了DYLD_LIBRARY_PATH變量。以下是我已經包含在我的.bash_profile中設置這些環境變量行:

# Settings for Matlab Engine using Apple XCode 
export PATH=$PATH:/Applications/MATLAB_R2014a.app/bin 
export PATH=$PATH:/Applications/MATLAB_R2014a.app/bin/maci64 
export DYLD_LIBRARY_PATH=/Applications/MATLAB_R2014a.app/bin/maci64:/Applications/MATLAB_R2014a.app/sys/os/maci64:$DYLD_LIBRARY_PATH 

最後,我想建立一個使用MATLAB腳本(與XCode的理想建立)一個C程序,但它是令人沮喪的有麻煩甚至讓演示工作。

回答

0

我使用Mathworks公司的these instructions工作。關鍵區別在於我用mex編譯engdemo.c的方式。在我使用mex -client engine engdemo.c之前(請參閱上文),但在嘗試從Matlab提示符或從shell運行演示程序時會出現錯誤。

繼這篇文章後,我改爲編譯以下內容:mex -f /Applications/MATLAB_R2014a.app/bin/engopts.sh ./engdemo.c。起初,這引發了一個錯誤,說它找不到SDK「macosx10.7」(注意我使用的是OSX 10.9)。我查看了engopts.sh並發現了很多對macosx10.7的引用。

正在關注this article,我編輯了engopts.sh,將所有對macosx10.7的引用更改爲macosx10.8。 (請注意,即使我有osx10.9,我也有10.8 SDK,你可以通過輸入find xcode-select -print-path -name MacOSX10.8.sdk來看到。我決定使用10.8,因爲在那篇文章中有人說其他東西破壞了他們使用10.9,但我還沒有檢查過這一點。)

做出這些更改後,我重新運行mex -f /Applications/MATLAB_R2014a.app/bin/engopts.sh ./engdemo.c,它工作。從shell運行./engdemo成功運行程序。這對我來說似乎仍然非常黑。