1

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

どうすれば修正できますか?ありがとう!

4

1 に答える 1

5

ディストリビューションで提供される 32 ビットの開発パッケージをインストールする必要があります。リンクする 32 ビットの libstdc++ がないため、このエラーが表示されます。

Ubuntuのg++-multilibパッケージをインストールしてみてください。

于 2012-06-12T20:51:08.450 に答える