我正在尝试使用boost库来学习一些东西,但是当我尝试编译包含boost :: threads的东西时,我遇到了问题。 我在链接过程中遇到错误,这是消息:
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lboost-thread
但这很奇怪,因为只有当我使用普通用户编译时才会发生这种情况,使用root我可以编译没问题。
提前致谢。
答案 0 :(得分:7)
包含
#include <boost/thread/thread.hpp>
其他链接标志
-lboost_system -lboost_thread-mt
答案 1 :(得分:1)
检查boost安装路径中的lib名称(默认值:/ usr / lib /),如果是libboost_thread.so,则添加-lboost_thread。不要忘记使用-L / usr / lib / boost指定boost目录的路径。 如果它仅以root用户身份运行,请检查此目录中的权限:
ls -la /usr/lib/ | grep boost
您应该看到您的登录信息,并且rw_r_ r _(检查您是否具有读取权限)。
如果您对目录和boost lib具有此权限,则可以使用gcc进行链接:
g++ obj.o obj2.o -L/usr/lib -lboost_thread
如果您没有自己的文件或没有读取权限,请以root用户身份登录并添加
chown -R /usr/lib <your login>
chmod +r /usr/lib/lib*.so
答案 2 :(得分:0)
为你的makefile库添加/ path / to / boost包含路径,你的错误就会消失。
另一个选项是将其加速到你的LIBPATH变量