0

問題があります: Boost ( ) を使用してコードを書きlocks.hppました。私のサーバーは x64 Ubuntu (Linux) を実行しています。このコードを-m64でコンパイルすると、正常にビルドされます。しかし、 用にコンパイルしようとすると-m32、次のエラーが発生します。

g++ -fPIC -m32 -shared -Wl,-soname,test.so -ldl -o test.so test.cpp -lboost_thread

/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../libboost_thread.so when searching for -lboost_thread
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../libboost_thread.a when searching for -lboost_thread
/usr/bin/ld: skipping incompatible //usr/lib/libboost_thread.so when searching for -lboost_thread
/usr/bin/ld: skipping incompatible //usr/lib/libboost_thread.a when searching for -lboost_thread
/usr/bin/ld: cannot find -lboost_thread
collect2: ld returned 1 exit status

私は何を間違っていますか?ありがとう!

4

2 に答える 2

3

32 ビットのブースト パッケージをインストールしてみてください。

sudo apt-get install libboost-thread-dev:i386 
于 2012-07-09T00:57:59.047 に答える
2

スレッド ライブラリの 32 ビット バージョンが必要です。あなたの質問に対する答えは、すでに stackoverflow.com にあります。ソースからブーストをビルドする場合は、 address-modelオプションを使用します。Boost は、Linux でのビルドに関する優れたドキュメントを提供します。

bjam address-model=32
于 2012-07-09T00:52:53.177 に答える