我编译了使用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
谢谢!
答案 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
由于我不知道您系统的具体细节,因此升级库可能与我的不同。