C++ 链接boost::线程

C++ 链接boost::线程,c++,boost,linker,boost-thread,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我可以毫无问题地编译 提前感谢。将/path/to/bo

我试图从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我可以毫无问题地编译


提前感谢。

将/path/to/boost添加到您的makefile库Include path,您的错误将消失


另一个选项是将boost包含到LIBPATH变量中

检查boost安装路径中的lib名称(默认值:/usr/lib/),如果是libboost\u thread.so,则添加-lboost\u thread。不要忘记用-L/usr/lib/boost指定boost目录的路径。 如果它仅以root用户身份工作,请检查您在此目录中的权限:

ls -la /usr/lib/ | grep boost
您应该看到您的登录名和rw_r_r_(检查您是否具有读取权限)

如果您对目录和boost库拥有此权限,则可以通过以下方式链接gcc:

g++ obj.o obj2.o -L/usr/lib -lboost_thread
如果您不拥有文件或没有读取权限,请以root用户身份登录并添加它们

chown -R /usr/lib <your login>
chmod +r /usr/lib/lib*.so
chown-R/usr/lib
chmod+r/usr/lib/lib*.so
包括

#include <boost/thread/thread.hpp>

你执行的命令是什么?通常您必须在其中的某个地方提供
-L[/path/to/boost]
,以便它知道在哪里可以找到它。boost的最新版本需要使用“-lboost\u thread”这是我运行的命令:g++-L/usr/local/boost\u 1\u 48\u 0/stage/lib-lboost threadBoost.cpp,但它只能从rooth运行。我已经检查了权限,但有0k(777),我使用以下代码编译:g++-L/usr/local/boost\u 1\u 48\u 0/stage/lib-lboost thread threadBoost.cpp,但仍然得到:找不到-lboost thread
-lboost_system -lboost_thread-mt