boost库的安装和使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了boost库的安装和使用相关的知识,希望对你有一定的参考价值。

1)首先去官网下载boost源码安装包:http://www.boost.org/

        选择下载对应的boost源码包。本次下载使用的是 boost_1_60_0.tar.gz

 

(2)解压文件:tar -zxvf boost_1_60_0.tar.gz

 

(3)进入源代码路径执行命令  ./bootstrap.sh

        这一条命令完成boost默认配置,当然编译boost是需要gcc 和 g++的支持的。如果没有gcc 和 g++可以执行命令:

        yum install gcc gcc-c++  安装gcc g++

       这一条命令默认的安装路径配置为/usr/local/路径下。及执行这条命令等同执行以下命令

        ./bootstrap.sh –prefix=/usr/local/

     也就是默认的boost头文件安装到/usr/local/include/文件夹下。boost库文件会安装到/usr/local/lib/文件夹下。安装完成之后      你会在对应的文件夹下看到对应的文件。

 

(4)执行完上一条命令之后可以执行命令  ./b2  进行编译。(注意:编译需要耗费相当长的一段时间)

 

(5)然后执行下面安装命令 

        ./b2 install  或者 ./bjam install

       安装命令应该是管理员权限,因为需要到向系统中拷贝文件及库文件。

 

(6)将/usr/local/include下的boost文件夹及里面的内容全部拷贝到/usr/include/下。

将/usr/local/lib下的所有文件拷贝到/usr/lib下。

 

(7)测试test.cpp

 

[cpp] view plain copy 
 
 print?技术分享技术分享
  1. #include <boost/thread.hpp>   
  2. #include <iostream>   
  3.      
  4. void task1() {    
  5.     // do stuff   
  6.     std::cout << "This is task1!" << std::endl;   
  7. }   
  8.      
  9. void task2() {    
  10.     // do stuff   
  11.     std::cout << "This is task2!" << std::endl;   
  12. }   
  13.      
  14. int main (int argc, char ** argv) {   
  15.     using namespace boost;    
  16.     thread thread_1 = thread(task1);   
  17.     thread thread_2 = thread(task2);   
  18.      
  19.     // do other stuff   
  20.     thread_2.join();   
  21.     thread_1.join();   
  22.     return 0;   
  23. }   

编译指令: g++ test.cpp -o test -lboost_thread

 

 

3.设置环境变量
        在/etc/profile.d新建可执行文件boost.sh,添加文件内容:

#!/bin/sh
BOOST_INCLUDE=/home/boost-1.56.0/sdk/include/boost 
BOOST_LIB==/home/boost-1.56.0/sdk/lib
export BOOST_INCLUDE BOOST_LIB 


命令行执行:source /etc/profile.d/boost.sh
        以后在编译程序时,只需要用:-I$BOOST_INCLUDE -L$BOOST_LIB 即可,还要使用-l指定了链接库。

 

然后, /etc/ld.so.conf 文件添加so库的环境变量 /home/boost-1.56.0/sdk/lib(主要关键问题)

修改完成后,通过ldconfig命令进行重启

 

 

 

 

 

  (5).编译完成后,在/usr/local/include/boost目录中就有了新的boost头文件,在/usr/local/lib目录中就会有编译好的.so库文件和.a库文件。

  (6).进入/etc/ld.so.conf.d/目录,创建boost.conf文件,并写入/usr/local/lib/然后保存退出。然后输入命令:ldconfig重新加载所有库。执行完成后可以输入:ldconfig -v | grep boost命令来查看最新编译好的库是否已经加载。如果没有加载则可能上面的几个步骤有缺失或者执行出错。

  注意:做以上所有操作时,必须要root权限,否则会安装失败。

 

 

 

 

vi ~/.bash_profile

最后加入

export boost=‘
-lboost_date_time
-lboost_filesystem
-lboost_graph
-lboost_iostreams
-lboost_math_c99
-lboost_math_c99f
-lboost_math_c99l
-lboost_math_tr1
-lboost_math_tr1f
-lboost_math_tr1l
-lboost_prg_exec_monitor
-lboost_program_options
-lboost_python
-lboost_regex
-lboost_serialization
-lboost_signals
-lboost_system
-lboost_unit_test_framework
-lboost_wave
-lboost_wserialization‘
以后编译就可以使用g++ xxx.cpp $boost即可。

以上是关于boost库的安装和使用的主要内容,如果未能解决你的问题,请参考以下文章

Windows下Boost库的安装与使用

Boost的某些库还是需要生成二进制的库的,必须安装才行,以及使用库的方法

windows下boost库的基本用法

Linux下boost库的编译安装详解

windows下 boost库的安装

VS2015上boost可视化图形开发库的应用和操作