• linux, windows编译安装 boost库 (boost 1.56)


     要用到 boost库,基础设施建设。。。做个记录

    1.0  linux :

      系统环境

    root@melos1305-B85M-DS3H:~# cat /etc/lsb-release
    DISTRIB_ID=Ubuntu
    DISTRIB_RELEASE=12.04
    DISTRIB_CODENAME=precise
    DISTRIB_DESCRIPTION="Ubuntu 12.04 LTS"
    root@melos1305-B85M-DS3H:~# uname -a
    Linux melos1305-B85M-DS3H 3.2.0-24-generic #37-Ubuntu SMP Wed Apr 25 08:43:22 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

    1.1  下载boost(1.56):

    # wget -c http://jaist.dl.sourceforge.net/project/boost/boost/1.56.0/boost_1_56_0.tar.gz

      解压 boost_1_56_0.tar.gz

    # tar -xzvf boost_1_56_0.tar.gz

    1.2  编译boost:

      进入 boost源代码目录

      使用root权限 

      bootstrap.sh 执行完后 生成b2, 执行b2编译安装

    # ./bootstrap.sh --includedir=/usr/local/include/boost_1_56_0/ --libdir=/usr/local/lib/boost_1_56_0/
    # ./b2 install --includedir=/usr/local/include/boost_1_56_0/ --libdir=/usr/local/lib/boost_1_56_0/

      然后就是等吧~

      要boost配置的详细查看  --help

    # ./bootstrap --help
    # ./b2 --help

    1.3  配置环境:

      编译完后

      头文件目录在 /usr/local/include/boost_1_56_0/

      动态库目录在 /usr/local/lib/boost_1_56_0/

    # vi /etc/ld.so.conf
    # 添加/usr/local/lib/boost_1_56_0
    # ldconfig

    1.4  g++ 编译:

      boost智能指针里的 boost::shared_ptr 测试代码

     1 #include <iostream>
     2 #include <vector>
     3 #include <boost/smart_ptr/shared_ptr.hpp>
     4 
     5 #define FUNC std::cout << __FUNCTION__ << std::endl;
     6 
     7 class A
     8 {
     9 public:
    10     A(){FUNC;}
    11     ~A(){FUNC;}
    12 };
    13 
    14 int main()
    15 {
    16     std::vector<boost::shared_ptr<A> > v;
    17     
    18     v.push_back(boost::shared_ptr<A>(new A));
    19     v.push_back(boost::shared_ptr<A>(new A));
    20     v.push_back(boost::shared_ptr<A>(new A));
    21 
    22     return 0;
    23 }

      

      编译

    $ g++ -I /usr/local/include/boost_1_56_0/ boost_test.cpp -o boost_test -L /usr/local/lib/boost_1_56_0/ 

      如果用到了 boost::asio, 则 (以此类推)

    $ g++ -I /usr/local/include/boost_1_56_0/ async_tcp_echo_server.cpp -o async_tcp_echo_server -L /usr/local/lib/boost_1_56_0/ -lboost_system

      

      run~~

            

    2.0  windows:

      环境 win7 + vs2012 + boost 1.56.0

      下载 boost http://www.boost.org/users/history/version_1_56_0.html#

      D盘 新建目录 D:oost,解压到 D:oostoost_1_56_0,考虑到以后要同时存在的几个版本的boost库,方便管理

    2.1  编译安装 :

         

      进入boost安装目录(D:oostoost_1_56_0),  执行  

      bootstrap.bat

      生成  bjam

        msvc11.0 对应 vs2012,--stagedir 是指定编译后存放的目录

    bjam stage --toolset=msvc-11.0 --stagedir="D:oostoost_1_56_0invc11" link=static runtime-link=shared runtime-link=static threading=multi debug release

      然后就是 慢慢等~

     

    2.2  配置项目环境:

      附加包含库,boost库 源代码文件的目录

      

      添加 动态库目录

      

      

      boost智能指针里的 boost::shared_ptr 测试代码

     1 #include <iostream>
     2 #include <vector>
     3 #include <boost/smart_ptr/shared_ptr.hpp>
     4 
     5 #define FUNC std::cout << __FUNCTION__ << std::endl;
     6 
     7 class A
     8 {
     9 public:
    10     A(){FUNC;}
    11     ~A(){FUNC;}
    12 };
    13 
    14 int main()
    15 {
    16     std::vector<boost::shared_ptr<A>> v;
    17     
    18     v.push_back(boost::shared_ptr<A>(new A));
    19     v.push_back(boost::shared_ptr<A>(new A));
    20     v.push_back(boost::shared_ptr<A>(new A));
    21 
    22     return 0;
    23 }

      

      run~~~

       

    3.0  参考:

    1 http://www.boost.org/doc/libs/1_56_0/more/getting_started/unix-variants.html
    2 http://blog.csdn.net/zengraoli/article/details/8870446
    3 http://blog.163.com/yungang_z/blog/static/175153133201262445539767/
  • 相关阅读:
    hdu 3333 树状数组+离线处理
    poj 2352 树状数组 OR Treap
    hdu 1698 线段树
    【概率dp】D. Card Collector
    【分段哈希】H. Paint the Wall
    【置换】G. Poker 2.0
    【概率dp】C. Race to 1 Again
    【dp】D. Caesar's Legions
    【并查集】F.find the most comfortable road
    【算法系列学习】连续邮资问题
  • 原文地址:https://www.cnblogs.com/coolulu/p/4125428.html
Copyright © 2020-2023  润新知