使用boost运行LD_PRELOAD时出错

时间:2012-07-08 17:53:53

标签: c++ boost ld-preload

我编译了使用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

谢谢!

1 个答案:

答案 0 :(得分: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

由于我不知道您系统的具体细节,因此升级库可能与我的不同。