链接boost :: thread

时间:2012-03-05 19:25:02

标签: c++ boost linker boost-thread

我正在尝试使用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我可以编译没问题。

提前致谢。

3 个答案:

答案 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变量