alk*_*lkz 4 c++ linker boost 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
Run Code Online (Sandbox Code Playgroud)
但这很奇怪,因为只有当我使用普通用户编译时才会发生这种情况,使用root我可以编译没有问题.
提前致谢.
包括
#include <boost/thread/thread.hpp>
Run Code Online (Sandbox Code Playgroud)
其他链接器标志
-lboost_system -lboost_thread-mt
Run Code Online (Sandbox Code Playgroud)
小智 1
检查boost安装路径中的lib名称(默认:/usr/lib/),如果是libboost_thread.so,则添加-lboost_thread。不要忘记使用 -L/usr/lib/boost 指定 boost 目录的路径。如果它只能以 root 身份工作,请检查您在此目录中的权限:
ls -la /usr/lib/ | grep boost
Run Code Online (Sandbox Code Playgroud)
您应该看到您的登录名和 rw_r_ r _ (检查您是否具有读取权限)。
如果您对目录和 boost 库具有此权限,则可以完成与 gcc 的链接:
g++ obj.o obj2.o -L/usr/lib -lboost_thread
Run Code Online (Sandbox Code Playgroud)
如果您不拥有文件或没有读取权限,请以 root 身份登录并添加它们
chown -R /usr/lib <your login>
chmod +r /usr/lib/lib*.so
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13663 次 |
| 最近记录: |