美文网首页Linux相关
Ubuntu20.10中安装boost 1.75库

Ubuntu20.10中安装boost 1.75库

作者: 雪域迷影 | 来源:发表于2021-03-14 22:59 被阅读0次

    一、下载Boost 1.75源代码

    首先上Boost官网下载Boost 1.75的源代码boost_1_75_0.tar.gz,如下图所示:

    Boost 1.75源代码下载

    二、编译安装boost 1.75源代码

    将从boost_1_75_0.tar.gz下载后的boost 1.75源代码,如下图所示:

    boost 1.75源代码

    1、解压boost_1_75_0.tar.gz源代码

    解压boost_1_75_0.tar.gz源代码
    cd 
    tar -xvf boost_1_75_0.tar.gz
    

    2、运行bootstrap.sh脚本:

    执行脚本bootstrap.sh
    ./bootstrap.sh 
    

    也可以添加prefix参数:

    ./bootstrap.sh --with-libraries=all --with-toolset=gcc
    

    ·--with-libraries·指定编译哪些·boost·库,all的话就是全部编译,只想编译部分库的话就把库的名称写上,之间用 , 号分隔即可.
    也可以添加prefix参数, 自定义生成的头文件和二进制库文件目录:

    ./booststrap.sh --prefix /usr
    

    则生成的头文件在/usr/lib/include中, 二进制库文件在/usr/boost/lib中。

    3、接下来,根据提示,执行以下命令开始进行boost的编译:

    ./b2 toolset=gcc
    

    之后,进行安装指令:

    ./b2 install
    
    boost 1.75头文件和库文件

    三、测试使用boost库

    测试boost线程库的源代码如下:

    #include <boost/thread/thread.hpp> //包含boost头文件
    #include <iostream>
    #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;
    }
    

    为了方便,我把boost 1.75库安装到了/usr目录下,执行命令g++ threadExample01.cpp -o threadExample01 -I/usr/lib -lboost_thread -lpthread运行程序,生成了threadExample01可执行程序,然后执行./threadExample01运行程序,结果如下图所示:

    运行boost thread线程示例

    参考资料

    相关文章

      网友评论

        本文标题:Ubuntu20.10中安装boost 1.75库

        本文链接:https://www.haomeiwen.com/subject/jvfhcltx.html