0

我编译了使用 boost (locks.hpp) 的 LD_PRELOAD。编译成功。我将此 LD_PRELOAD 复制到其他 linux 服务器,当我运行时,错误:

/usr/bin/java:符号查找错误:/test/test.so:未定义符号:_ZN5boost11this_thread20disable_interruptionC1Ev

我怎样才能解决这个问题?如果不在此服务器上安装 boost,我可以避免这个问题吗?

我如何编译 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 回答