boost之简介、编译、安装和使用

Boost库对于开发者来说,就是一个武器库,从手枪到原子弹都能找到,涉及到开发的方方面面。它复杂它功能强,所以需要一些学习成本,但学成了,我们就能更加优雅、更加高效、更加规范的开发C++程序。
具体来说Boost库包含了:字符串及文本处理、容器、迭代器、算法、函数对象和高阶编程、泛型编程、模板元编程、预处理元编程、并发编程、数学相关、纠错和测试、数据结构、输入/输出、跨语言支持、内存相关、语法分析、杂项等方面的内容。

本文主要讲解怎么编译安装Boost和简单的示例程序。后面的文章再深入介绍Boost各模块具体的使用方法。

下载

我们从Boost的官方网站下载源代码包,由于Boost库比较重,它的安装包也比较大,我下载的boost_1_72_0.tar.gz足有120M。 boost之简介、编译、安装和使用

boost之简介、编译、安装和使用

编译
wget https://dl.bintray.com/boostorg/release/1.72.0/source/boost_1_72_0.tar.gz

tar -zxvf boost_1_72_0.tar.gz

cd boost_1_72_0

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

执行上述命令后,我们看到如下信息,表明初步构建成功:
boost之简介、编译、安装和使用

下一步开始编译,执行如下命令:

./b2 toolset=gcc

编译成功之后,我们将其安装到一个指定的目录。执行如下命令:

./b2 install --prefix=/home/motadou/objs/boost/ins

安装成功之后,我们会在/home/motadou/objs/boost/ins目录下看到这么两个文件夹:
boost之简介、编译、安装和使用

其中include目录包含了各种模块的头文件,而lib目录包含了模块的静态库和动态库。
boost之简介、编译、安装和使用

示例程序
// 将该程序保存为:boost.cpp
#include <boost/thread/thread.hpp>
#include <iostream>
#include <cstdlib>

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

void func2()
{
    static int cnt2 = 0;
    for ( ; true; )
    {
        std::cout << "func2:" << cnt2++ << std::endl;
        ::sleep(2);
    }
}

int main(int argc, char ** argv)
{
    boost::thread thread1(&func1);
    boost::thread thread2(&func2);

    thread1.join();
    thread2.join();

    return 0;
}

采用Boost静态库的编译方式。
使用如下命令编译上述源代码文件:

g++ -o test boost.cpp -I/home/motadou/objs/boost/ins/include /home/motadou/objs/boost/ins/lib/libboost_thread.a -lpthread

采用Boost动态库的编译方式。
第一步,将Boost动态库目录加入到动态库搜索路径中。使用如下命令:

sudo vi /etc/ld.so.conf

在该文件末尾加入/home/motadou/objs/boost/ins/lib/。

修改完毕的文件如下示例:
boost之简介、编译、安装和使用

第二步,使用ldconfig命令配置动态链接器在运行时的绑定。使用如下命令:

sudo ldconfig

第三步,使用如下命令编译上述源代码文件:

g++ -o test boost.cpp -I/home/motadou/objs/boost/ins/include -L/home/motadou/objs/boost/ins/lib -lboost_thread -lpthread

使用上述两种方式都能正确编译出可执行程序。我们运行可执行程序,程序运行结果如下:
boost之简介、编译、安装和使用

原文链接: https://www.cnblogs.com/motadou/archive/2013/01/06/2848354.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    boost之简介、编译、安装和使用

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/74698

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月9日 下午4:31
下一篇 2023年2月9日 下午4:32

相关推荐