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:\boost,解压到 D:\boost\boost_1_56_0,考虑到以后要同时存在的几个版本的boost库,方便管理

 

2.1  编译安装 :

     

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

  bootstrap.bat

  生成  bjam

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

bjam stage --toolset=msvc-11.0 --stagedir="D:\boost\boost_1_56_0\bin\vc11" 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/

 

posted @ 2014-11-27 00:10  l_u_l_u  阅读(2486)  评论(0编辑  收藏  举报