2013-02-18 58 views
1

但是,我試圖從http://people.cs.uchicago.edu/~rbg/latent/編譯對象檢測程序,但沒有任何運氣。64位Ubuntu上的32位matlab中的mex文件

我安裝了64位Ubuntu 12.10,32位MATLAB 2012a。我也有gcc編譯

[email protected]:~$ gcc --version 
gcc (Ubuntu/Linaro 4.7.2-2ubuntu1) 4.7.2 

以下是錯誤我得到

EDU>> demo 
compiling the code... 
Warning: You are using gcc version "4.7.2-2ubuntu1)". The version 
    currently supported with MEX is "4.4.6". 
    For a list of currently supported compilers see: 
    http://www.mathworks.com/support/compilers/current_release/ 

/usr/bin/ld: cannot find crti.o: No such file or directory 
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.7/libstdc++.so when  searching for -lstdc++ 
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.7/libstdc++.a when searching for -lstdc++ 
/usr/bin/ld: cannot find -lstdc++ 
/usr/bin/ld: cannot find -lm 
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.7/libgomp.so when searching for -lgomp 
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.7/libgomp.a when searching for -lgomp 
/usr/bin/ld: cannot find -lgomp 
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.7/libgcc_s.so when searching for -lgcc_s 
/usr/bin/ld: cannot find -lgcc_s 
/usr/bin/ld: cannot find -lpthread 
/usr/bin/ld: cannot find -lc 
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.7/libgcc_s.so when searching for -lgcc_s 
/usr/bin/ld: cannot find -lgcc_s 
/usr/bin/ld: cannot find crtn.o: No such file or directory 
collect2: error: ld returned 1 exit status 

    mex: link of ' "bin/fv_cache.mexglx"' failed. 

Warning: Maybe you need to call fv_cache('unlock') first? 
> In fv_compile at 50 
    In compile at 48 
    In demo at 5 

Warning: You are using gcc version "4.7.2-2ubuntu1)". The version 
    currently supported with MEX is "4.4.6". 
    For a list of currently supported compilers see: 
    http://www.mathworks.com/support/compilers/current_release/ 

/usr/bin/ld: cannot find crti.o: No such file or directory 
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.7/libstdc++.so when searching for -lstdc++ 
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.7/libstdc++.a when searching for -lstdc++ 
/usr/bin/ld: cannot find -lstdc++ 
/usr/bin/ld: cannot find -lm 
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.7/libgcc_s.so when searching for -lgcc_s 
/usr/bin/ld: cannot find -lgcc_s 
/usr/bin/ld: cannot find -lpthread 
/usr/bin/ld: cannot find -lc 
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.7/libgcc_s.so when searching for -lgcc_s 
/usr/bin/ld: cannot find -lgcc_s 
/usr/bin/ld: cannot find crtn.o: No such file or directory 
collect2: error: ld returned 1 exit status 

    mex: link of ' "bin/cascade.mexglx"' failed. 

Error using mex (line 206) 
Unable to complete successfully. 

Error in cascade_compile (line 43) 
eval(mexcmd); 

Error in compile (line 50) 
    cascade_compile(opt, verb); 

Error in demo (line 5) 
compile; 

我懷疑它是與丟失的32位庫。我是unix系統的新手,所以我可能沒有包含所有你需要知道的信息。

更新:

新的錯誤看起來像

/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.7/libstdc++.so when searching for -lstdc++ 
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.7/libstdc++.a when searching for -lstdc++ 
/usr/bin/ld: cannot find -lstdc++ 
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.7/libgomp.so when searching for -lgomp 
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.7/libgomp.a when searching for -lgomp 
/usr/bin/ld: cannot find -lgomp 
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.7/libgcc_s.so when searching for -lgcc_s 
/usr/bin/ld: cannot find -lgcc_s 
collect2: error: ld returned 1 exit status 

    mex: link of ' "bin/fv_cache.mexglx"' failed. 

我試圖創建符號鏈接

sudo ln -s /usr/lib/i386-linux-gnu/libc.so.6 /usr/lib/libc.so.6 

但是它並沒有解決問題

回答

0

嘗試尋找crti在您的系統中首先:

~$ sudo find /usr/ -name crti* 
/usr/lib/x86_64-linux-gnu/crti.o 
/usr/lib32/crti.o 

如果它不存在,或者LIB32的版本,安裝libc6-dev

~$ sudo apt-get install libc6-dev 

如果它確實存在,嘗試添加庫的位置:Ask Ubuntu

LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LIBRARY_PATH 
export LIBRARY_PATH 

參見這些職位和SO有關的問題和幫助。

+0

謝謝您的回覆。我已安裝libc6-dev。 ivan @ ubuntu:〜$ sudo find/usr/-name crti *僅返回 /usr/lib/x86_64-linux-gnu/crti.o。我還添加了庫位置,但是我仍然無法執行編譯。我在之前看到過您的帖子中的鏈接,並試圖在發佈問題之前關注他們,不幸的是我可以實現結果。 – Gnattuha 2013-02-18 19:54:47

+0

不知道您的32位MATLAB是否在尋找32位庫。你是否有基本的32位庫版本,即'ia32-libs'或更新的多字節版本'ia32-libs-multiarch'? – gevang 2013-02-18 20:35:23

+1

伊萬@ Ubuntu的:〜$ sudo易於得到安裝IA32-庫 [須藤]密碼伊萬: 讀取軟件包列表...完成 大廈的依賴關係樹 讀取狀態信息...完成 IA32-庫已經是最新版本。 0升級,0新安裝,0刪除和0未升級。 伊萬@ Ubuntu的:〜$ sudo易於得到安裝IA32-庫 - multiarch 讀取軟件包列表...完成 大廈的依賴關係樹 讀取狀態信息...完成 IA32-庫-multiarch:I386已經是最新版本。 ia32-libs-multiarch:i386設置爲手動安裝。 0升級,0新安裝,0刪除和0未升級。 – Gnattuha 2013-02-18 20:39:44

相關問題