Linking boost::thread

Linking boost::thread

本文关键字:thread boost Linking      更新时间:2023-10-16

我试图用boost库学习一些东西,但当我试图编译包括boost::线程的东西时,我遇到了一个问题。我在链接过程中遇到错误,这是消息:

/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lboost-thread

但这很奇怪,因为只有当我使用普通用户进行编译时才会发生这种情况,使用root可以毫无问题地进行编译。

提前谢谢。

包括

#include <boost/thread/thread.hpp>

其他链接器标志

-lboost_system -lboost_thread-mt

检查boost安装路径(默认值:/usr/lib/)中的库名称,如果是libboost_thread.so,则添加-lbox_thread。不要忘记用-L/usr/lib/boost指定boost目录的路径。如果它只作为root用户工作,请在以下目录中检查您的权限:

ls -la /usr/lib/ | grep boost

您应该看到您的登录名和rw_rr_(检查您是否具有读取权限)。

如果您在目录和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

将/path/to/boost添加到makefile Library Include路径,您的错误就会消失。

另一个选项是将其提升到LIBPATH变量