我正在尝试在x64平台(Ubuntu)上编译x32 LD_PRELOAD,我的命令:
g++ -fPIC -m32 -shared -Wl,-soname,test.so -ldl -o test.so test.cpp
但是我收到了错误:
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.5/libstdc++.so when searching for -lstdc++
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.5/libstdc++.a when searching for -lstdc++
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.5/libstdc++.so when searching for -lstdc++
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.5/libstdc++.a when searching for -lstdc++
/usr/bin/ld: cannot find -lstdc++
collect2: ld returned 1 exit status
我该如何解决? 谢谢!
答案 0 :(得分:4)
您需要安装发行版提供的32位开发包。您看到此错误,因为您没有要链接的32位libstdc ++。
尝试安装Ubuntu的g++-multilib
包。