我想与在x64的Ubuntu 11.04纳蒂独角鲸的x86共享库链接,但我得到了以下信息:在Linux的x64 x86的共享库链接
/usr/bin/ld: skipping incompatible ./bin/libshared.so when searching for -lshared
/usr/bin/ld: cannot find -lshared
一些细节:
共享库名称是libshared.so
共享库建立在x86操作系统上。
我已经安装了lib32stdC++ 6。
生成文件看起来是这样的:
test: main.o
g++ -mi386linux -L./bin -lshared main.o -o test
main.o: main.cpp
g++ -m32 -c main.cpp -o main.o
任何想法?
编辑:
/usr/bin/ld: cannot find -lshared
/usr/bin/ld: skipping incompatible /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/libstdc++.so when searching for -lstdc++
/usr/bin/ld: skipping incompatible /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/libstdc++.a when searching for -lstdc++
/usr/bin/ld: cannot find -lstdc++
collect2: ld returned 1 exit status
运行找到我发现的libstdC++所以在以下位置: 改变-mi386linux标志-m32我得到这个错误后
/usr/lib/x86_64-linux-gnu/libstdc++.so.6
/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.14
/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5/libstdc++.so
/usr/lib32/libstdc++.so.6
/usr/lib32/libstdc++.so.6.0.14
可以添加'file -k ./bin/libshared.so main.o'的输出吗? – osgx
@Ohad,你看到osgx的问题了吗?请粘贴该命令的输出。 – bdonlan
哎呀错过了这句话,谢谢你@bdonlan提醒。什么解决了使用-m32和安装multilib的问题。 BTW文件-k的输出是“main.o:ELF 32位LSB可重定位,英特尔80386,版本1(SYSV),没有剥离”我会记住那个命令下一次我会遇到这样的问题,所以谢谢:) –