Boost-简介篇

 

  • 什么是Boost

          一个C++开源库,提供了非常多有用的功能。

  • 获取Boost

          最可靠的方式是去Boost官网下载,因为根据官网介绍一些系统自带的Boost发行包和官方的包在组织结构上会有区别。为了省去不必要的麻烦,保持与官方文档一致,所以采用官网的包是最稳妥的方式。

  • Boost文件组织说明

          

         1、Boost根目录: /home/apple/DownLoads/boost_1_65_0;

         2、所有需要使用的头文件都位于boost目录或者其子目录下;

         3、官方文档:libs/index.html,但是如果要看最新的文档,还是联网看吧。

  • 使用Boost

          1、对于大部分Boost库来说,只需要包含一个头文件就可以使用了,形式如:#include <boost/asio.hpp>

          2、少部分Boost库需要单独编译后才能使用,可以使用boost发行包里的工具进行查看哪些库是需要单独编译的。

  • 示例一:只需要头文件的库用法

         1、源码

         

        2、编译

             

            其中-I选项通知g++去什么目录下查找include的头文件:boost/lambda/lambda.hpp,如果没有这个选项,则只会去系统默认包含目录下查找,即:/usr/include

  • 示例二:需要单独编译的库用法

         1>、现在需要使用正则表达式库,即regex,通过boost发行包自带的工具可以得知regex库需要单独编译,如下:

                 

               需要关注的是:

               (1).--show-libraries  显示所有需要单独编译的库名称;

               (2).--with-libraries  配置需要安装的库名称列表,以逗号分隔;

               (3).--prefix  生成的库和头文件所在的路径,如配置成/usr,表示生成的库将位于/usr/lib下面,头文件会在/usr/include下面

         2>、生成编译regex的配置文件

                

         3>、开始build(注:需要root权限)

            

         4>、生成效果如下:

                 

         5>、示例源码

                

         6>、编译

               

              (1)、此处编译没有加-I和-L选项是因为我将regex库和头文件都生成到系统默认包含目录中了,如果生成到其他目录,必须增加这两个选项才能编译成功;

              (2)、因为默认包含目录下同时有regex的共享库和静态库,所以g++会自动选择其中一个来链接,可以在生成LINKLIB后通过ldd命令查看。

         7>、运行

               运行过程中需要查找共享库libboost_regex.so,所以需要提供查找路径,方法如下:

              LD_LIBRARY_PATH=/usr/lib:${LD_LIBRARY_PATH}

              export LD_LIBRARY_PATH

  • 其他

          1、Q:上次使用--with-libraries选项安装了一个库:regex,这次再用--show-libraries选项查看,竟然只显示regex需要单独编译安装了,怎么解决?

                A:的确会出现这种情况,如下:

                   

                  解决方式: 1>、运行./bootstrap.sh

                                   2>、再次运行./bootstrap.sh --show-libraries,搞定!

                 原因?不细究了,这种东西不重要,会用就行。

           2、使用bjam也可以安装库,具体: ./bjam --help

 

转载于:https://www.cnblogs.com/letsgollc/p/7463194.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值