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/