gpt4 book ai didi

Boost/CentOS 链接问题

转载 作者:太空宇宙 更新时间:2023-11-03 17:16:14 25 4
gpt4 key购买 nike

我正在尝试学习 Boost 线程。我正在使用在线教程中的代码,在出现一些错误后我意识到我需要更新版本的 Boost,所以我将它的最新版本下载到一个目录中,解压缩并使用以下命令安装它:

./bootstrap.sh
./bjam install

我尝试运行的示例代码是这样的:

#include <boost/thread.hpp> 
#include <iostream>

using namespace std;
using namespace boost;

void threader()
{
for (int i = 0; i < 5; ++i)
{
sleep(1);
cout << boost::this_thread::get_id() << "-" << i << endl;
//cout << "-" << i << endl;
}
}
int main()
{
thread t(threader);
sleep(1);
thread u(threader);
t.join();
u.join();
}

我使用与旧版本 Boost(1.33 作为标准 Centos 附带的版本)相同的行进行编译:

g++ -Wall -L/usr/local/lib -lboost_thread threadtest.cpp -o threadtest

它编译没有错误(与旧版本的 Boost 不同)但是当我运行 threadtest 时我得到:

./threadtest: error while loading shared libraries: libboost_thread.so.1.47.0: cannot open shared object file: No such file or directory

查看/usr/local/lib 目录,我可以看到以下内容:

-rw-r--r-- 1 root root   217270 Nov 10 12:50 libboost_thread.a
lrwxrwxrwx 1 root root 25 Nov 10 12:43 libboost_thread.so -> libboost_thread.so.1.47.0
-rwxr-xr-x 1 root root 138719 Nov 10 12:43 libboost_thread.so.1.47.0

所以我不明白为什么它不起作用。我认为这与编译行的 -lboost_thread 部分有关。我尝试直接链接到图书馆:

g++ -Wall -L/usr/local/lib libboost_thread.a threadtest.cpp -o threadtest

但是还是找不到文件。有人可以帮忙吗?

最佳答案

我需要使用以下内容将我的 lib 目录的路径重新添加到我的 LD_LIBRARY_PATH:

export LD_LIBRARY_PATH="/usr/local/lib/"

成功了。

关于Boost/CentOS 链接问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8081055/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com