0

ブースト (locks.hpp) を使用する LD_PRELOAD をコンパイルしました。コンパイルは成功しました。このLD_PRELOADを他のLinuxサーバーにコピーしましたが、実行するとエラーが発生しました:

/usr/bin/java: シンボル検索エラー: /test/test.so: 未定義のシンボル: _ZN5boost11this_thread20disable_interruptionC1Ev

どうすればこれを修正できますか? このサーバーにブーストをインストールせずにこの問題を回避できますか?

LD_PRELOAD をコンパイルする方法:

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

ありがとう!

4

1 に答える 1

0

ファイルにアクセスlibboost_threadする必要があるようです。test.so次のようなもの:

g++ -fPIC -m32  -shared -Wl,-soname,test.so -ldl -o test.so test.cpp \ 
  /usr/lib/libboost_thread.a -lpthread

あなたのシステムの詳細がわからないので、boost ライブラリは私のものとは別の場所にあるかもしれません。

于 2012-07-08T18:08:52.240 に答える