Linux /usr/bin/ld:在搜索foo时跳过不兼容的foo.so

Linux /usr/bin/ld:在搜索foo时跳过不兼容的foo.so,linux,gcc,x86,32bit-64bit,vlfeat,Linux,Gcc,X86,32bit 64bit,Vlfeat,我正在使用Ubuntu13.10 64位,在编译vlfeat库的python包装时,我遇到了以下错误 g++ -o _vlfeat.so ../../vl/aib.o ../../vl/generic.o ../../vl/hikmeans.o ../../vl/ikmeans.o ../../vl/imopv.o ../../vl/mathop.o ../../vl/pgm.o ../../vl/rodrigues.o ../../vl/stringop.o ../../vl/getopt_l

我正在使用Ubuntu13.10 64位,在编译vlfeat库的python包装时,我遇到了以下错误

g++ -o _vlfeat.so ../../vl/aib.o ../../vl/generic.o ../../vl/hikmeans.o ../../vl/ikmeans.o ../../vl/imopv.o ../../vl/mathop.o ../../vl/pgm.o ../../vl/rodrigues.o ../../vl/stringop.o ../../vl/getopt_long.o ../../vl/host.o ../../vl/imop.o ../../vl/imopv_sse2.o ../../vl/mser.o ../../vl/random.o ../../vl/sift.o ../../vl/dsift.o mser/vl_erfill.o mser/vl_mser.o sift/vl_sift.o sift/vl_dsift.o sift/vl_siftdescriptor.o imop/vl_imsmooth.o misc/vl_binsum.o kmeans/vl_hikmeans.o kmeans/vl_ikmeans.o kmeans/vl_hikmeanspush.o kmeans/vl_ikmeanspush.o py_vlfeat.o -m64 -msse -m32 -msse -shared  -lboost_python-mt-py27
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../libboost_python-mt-py27.so when searching for -lboost_python-mt-py27
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../libboost_python-mt-py27.a when searching for -lboost_python-mt-py27
/usr/bin/ld: skipping incompatible /usr/lib/libboost_python-mt-py27.so when searching for -lboost_python-mt-py27
/usr/bin/ld: skipping incompatible /usr/lib/libboost_python-mt-py27.a when searching for -lboost_python-mt-py27
/usr/bin/ld: cannot find -lboost_python-mt-py27
/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/x86_64-linux-gnu/libm.so when searching for -lm
/usr/bin/ld: skipping incompatible /usr/lib/x86_64-linux-gnu/libm.a when searching for -lm
/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: skipping incompatible /usr/lib/x86_64-linux-gnu/libc.so when searching for -lc
/usr/bin/ld: skipping incompatible /usr/lib/x86_64-linux-gnu/libc.a when searching for -lc
/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
collect2: error: ld returned 1 exit status
make: *** [_vlfeat.so] Error 1

有什么解决方案可以使该库在64位体系结构上工作吗?

删除命令行标志中的-m32

要使用32位二进制文件构建,必须安装


sudo-apt-get-install-gcc-multilib

sudo apt get install ia32 libs dev

您同时指定了
-m32
-m64
。。。你想要哪一个?我不确定他们代表什么,因为我是一个NoOB到C++。你能解释一下吗?仅供参考,我使用的是64位Ubuntu。
-m32
生成32位代码,
-m64
生成64位代码(这应该是您系统的默认设置)。您应该只指定其中一个(如果有)。您可以在系统上运行32位或64位可执行文件,但32位可执行文件链接32位库,64位可执行文件链接64位库。您是编译源代码来生成.o文件,还是它们来自其他地方?@MarkkuK。这是我试图安装@MarkkuK的库的自述文件。.o文件是编译上述存储库“sudo apt get install gcc multilib”中的../..vl的结果,这是一种linux攻击。windows有这样的黑客吗?在Windows 7上粘贴了相同的链接问题:代码“E>:包IA32 LIBS DEV”没有安装候选<代码> >代码SUDO APT get安装GCC多LIB < /> >修复Debian Jesie的问题。如果你正在构建的是任何C++部分,那么也需要一个G++-MuliLIB包——所以Ubuntu 16.04,我需要'sudo apt get安装gcc multilib g++-multilib“.我在交叉编译raspberry pi的qt。我使用的是
armlinux-gnueabihf-
,它是我与
sudo-apt-install-crossbuild-essential-armhf一起安装的。您的回答帮助我使用以下命令构建QtWebEngine
sudo apt get install lib32z1 dev
,因为我没有32位zlib。