2012-09-21 41 views
1

我想使用「loadlibrary」函數添加一個簡單的庫到MATLAB。我第一次嘗試連接gcc編譯器與MEX -setup到MATLAB和得到這個:加載一個.dylib庫到matlab

選項文件可MEX是:

1:/Applications/MATLAB_R2012a.app/bin/mexopts.sh: 模板選項文件構建GCC MEX-文件

0:退出沒有變化

所以,我只是選擇了1,繼續。然後我收到此消息:


警告:MATLAB C和Fortran API已經改變以支持MATLAB具有多於2^32-1元件 變量。在不久的將來 您將被要求更新您的代碼以利用新的 API。有關詳細信息,請參閱: http://www.mathworks.com/help/techdoc/matlab_external/bsflnue-1.html 使用-largeArrayDims選項構建新API。


後此i型中: 的LoadLibrary( 'Samplelib.dylib', 'Samplelib.h')

錯誤使用的LoadLibrary(線419) 無法預處理的輸入文件。 預處理器的輸出是:/ bin/bash:gcc-4.2:找不到命令

任何想法爲什麼會發生這種情況?

+0

Anish,我們的答案是否幫助您解決問題? – angainor

回答

0

你在mac上使用matlab,是真的嗎?您需要先安裝gcc,然後才能繼續。試試Xcode - 你需要gcc-4.2,因爲它在上面提到的mexopts.sh中是硬編碼的。如何安裝取決於你的MacOS版本,但是google xcode,你會發現很多鏈接。

0

第一個「警告」只是告訴你,現在C API比以前更好了,因爲它支持大量的元素,但需要在更高版本的Matlab中使用新選項啓用。長話短說,你不在乎。關於gcc-4.2的下一個錯誤意味着gcc 4.2編譯器不在你的路徑上。如果你這樣做:

[s1,r1] = system('which gcc') 
    disp(r1) 
    disp(s1) 
    [s2,r2] = system('which gcc-4.2') 
    disp(r2) 
    disp(s2) 

可能,一個或兩個將返回一個錯誤。確保gcc編譯器位於您的環境變量PATH上。

像againor說的,你也需要安裝編譯器。 :-)

+0

嘿感謝您的快速回復。所以我很確定我有gcc版本4.2,如果我在終端輸入gcc -v,我得到: gcc版本4.2.1(基於Apple Inc. build 5658)(LLVM build 2336.11.00) 我是不太確定如何將其添加到我的路徑變量。 再次感謝您的幫助! –

相關問題