Oha*_*esh 5 linux 64-bit linker x86-64
我试图在x64 Ubuntu 11.04 Natty Narwhal上链接x86共享库,但是我得到以下消息:
/usr/bin/ld: skipping incompatible ./bin/libshared.so when searching for -lshared
/usr/bin/ld: cannot find -lshared
Run Code Online (Sandbox Code Playgroud)
一些细节:
共享库名称是libshared.so
共享库是在x86 OS上构建的.
我已经安装了lib32stdc ++ 6.
makefile看起来像这样:
test: main.o
g++ -mi386linux -L./bin -lshared main.o -o test
main.o: main.cpp
g++ -m32 -c main.cpp -o main.o
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
编辑:将-mi386linux标志更改为-m32后,我收到此错误:
/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
Run Code Online (Sandbox Code Playgroud)
运行locate我找到libstdc ++.所以在以下地方:
/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
Run Code Online (Sandbox Code Playgroud)