Ubuntu下编译使用Boost 1.83.0版本

7 篇文章 0 订阅

Ubuntu下编译使用Boost 1.83.0版本

一、安装方法

源码压缩包去我的资源中查找。

安装步骤:

  1. tar -zxvf boost_1_83_0.tar.gz

  2. cd boost_1_83_0

  3. ./bootstrap.sh

  4. ./b2 // 开始编译

  5. sudo ./b2 --prefix=/usr/local/boost install


安装完成后如下图所示:
在这里插入图片描述

检查安装目录如下图所示:
在这里插入图片描述
在这里插入图片描述


二、编辑环境变量

sudo vi /etc/profile
# 头文件路径
CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/local/boost/include
# 动态库以及静态库
LIBRARY_PATH=$LIBRARY_PATH:/usr/local/boost/lib
export LIBRARY_PATH CPLUS_INCLUDE_PATH 

#加载
source /etc/profile



三、使用C++程序进行测试boost库是否安装完成

#include <iostream>
#include <boost/version.hpp>
#include <boost/config.hpp>
#include <boost/thread/thread.hpp>
#include <cstdlib>

using namespace std;

volatile bool isRuning = true;

void func1()
{
    static int cnt1 = 0;
    while(isRuning)
    {
        cout << "func1:" << cnt1++ << endl;
        sleep(1);
    }
}

void func2()
{
    static int cnt2 = 0;
    while(isRuning)
    {
        cout << "\tfunc2:" << cnt2++ << endl;
        sleep(2);
    }
}

int main()
{
    boost::thread thread1(&func1);
    boost::thread thread2(&func2);

    system("read");
    isRuning = false;

    thread2.join();
    thread1.join();
    cout << "exit" << endl;
    return 0;
}



四、进行测试以及遇到的问题解决方法

  • 编译方法:
#需要手动指定动态库路径
g++ main.cpp -o main -L/usr/local/boost/lib  -lboost_thread -lpthread

注意:如果在编译过程中出现无法找到头文件问题,则再次执行:"source /etc/profile"即可。

  • 编译完成后尝试执行可执行程序
root@tl-vmware:/home# ./main 

./main: error while loading shared libraries: libboost_thread.so.1.83.0: cannot open shared object file: No such file or directory
# 无法打开共享目标文件:没有这样的文件或目录

解决方法:

1、临时使用(仅对当前终端有效,终端退出后失效)

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/boost/lib
#因为我们安装是安装在/usr/local/boost的

2、修改/.bashrc或/.bash_profile或/etc/profile。

区别是前两个只对当前用户生效,/etc/profile对所有用户起效。

  • 修改~/.bashrc的例子
sudo gedit ~/.bashrc
# 添加一句
export LD_LIBRARY_PATH=/usr/local/boost/lib:$LD_LIBRARY_PATH
# 保存退出
source ~/.bashrc
  • 修改/etc/profile的例子
sudo gedit /etc/profile
# 在文件末尾添加
export LD_LIBRARY_PATH=/usr/local/boost/lib{LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
# 保存退出
source /etc/profile

3、在根目录/etc/ld.so.conf.d/路径下创建任意boost.conf文件(有冲突则更改),把lib文件的路径写在里面

sudo gedit /etc/ld.so.conf.d/boost.conf
# 写入
/usr/local/boost/lib
# 保存退出
 
# 更新缓存
sudo ldconfig
  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值