2013-02-18 172 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