我试图学习与boost库的东西,但当我尝试编译包含boost :: threads的东西时遇到问题。 我链接过程中得到一个错误,这就是消息:链接boost ::线程
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lboost-thread
但它的奇怪,因为这种情况,只有当我与一个普通用户编写,使用根我也没有问题编译。
在此先感谢。
我试图学习与boost库的东西,但当我尝试编译包含boost :: threads的东西时遇到问题。 我链接过程中得到一个错误,这就是消息:链接boost ::线程
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lboost-thread
但它的奇怪,因为这种情况,只有当我与一个普通用户编写,使用根我也没有问题编译。
在此先感谢。
检查的lib名提升安装路径(默认是:/ usr/lib中/),如果是libboost_thread.so,加-lboost_thread。不要忘记用-L/usr/lib/boost指定升级目录的路径。 如果只是上班根,请检查您的权限在此目录中:
ls -la /usr/lib/ | grep boost
你应该看到您的登录,并rw_r_ [R _(检查是否具有读取权限)。
如果您对目录和升压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
我已经检查的权限,但也有0K(777),我编译如下: G ++ -L在/ usr /本地/ boost_1_48_0 /台/ lib目录-lboost线程threadBoost.cpp 但我仍然得到: 找不到 - LBOOST线程 – alkz 2012-03-06 12:28:20
添加/ path/to/boost到您的makefile库包含路径并且您的错误将消失。
另一种选择是包括提升到您的LIBPATH变量
包括
#include <boost/thread/thread.hpp>
其它链接器标记
-lboost_system -lboost_thread-mt
你跑的命令是什么?通常你必须在那里提供'-L [/ path/to/boost]',所以它知道在哪里找到它。 – 2012-03-05 20:57:26
最近版本的boost需要使用“-lboost_thread” – dsign 2012-03-05 21:19:28
这是我运行的命令: g ++ -L/usr/local/boost_1_48_0/stage/lib -lboost-thread threadBoost.cpp,但它只能用于根目录 – alkz 2012-03-05 23:12:32