boost库的安装和使用略记
2015-12-18 15:01
337 查看
boost库的安装和使用略记
一、对于Windows平台,在VS2013中安装配置boost_1_58_0库(默认已安装vs2013)1.到www.boost.org下载相应的代码包,我下载的是boost_1_58_0.tar.bz2
2. 解压boost文件到本地目录(如G:\boost_1_58_0),可以发现解压后的文件中有一个bootstrap.bat文件。
然后以管理员身份打开cmd窗口,转到bootstrap.bat文件所在路径,执行bootstrap.bat文件;
3.上述命令执行完毕后,可以发现G:\boost_1_55_0下新生成了一个bjam.exe文件
4.在命令窗口中输入语句:bjam.exe,执行bjam.exe
此过程将默认根据系统已经安装好的编译工具(VS2008,2010,2012,2013)等编译相应的Lib文件、头文件等。(此步骤大概需要10分钟)
5.添加boostest工程的包含目录(include头文件)和库目录(lib库文件)
工程名->配置属性->c/c++->常规->附加包含目录,添加: G:\boost_1_58_0
工程名->配置属性->链接器->常规->附加库目录,添加: G:\boost_1_58_0\stage\lib
在工程中新建文件,内容为
#include <boost/lexical_cast.hpp> #include <iostream> using namespace std; int main() { using boost::lexical_cast; int a = lexical_cast<int>("123"); double b = lexical_cast<double>("123.0123456789"); string s0 = lexical_cast<string>(a); string s1 = lexical_cast<string>(b); cout << "number: " << a << " " << b << endl; cout << "string: " << s0 << " " << s1 << endl; int c = 0; try { c = lexical_cast<int>("abcd"); } catch (boost::bad_lexical_cast& e) { cout << e.what() << endl; } return 0; }如果该文件可以编译和执行,则说明在VS2013中成功安装和配置boost_1_58_0库,否则安装和配置失败。
图片说明可以参考 http://jingyan.baidu.com/album/11c17a2c765763f446e39dc1.html?picindex=1
二、在Linux平台,在gcc和g++环境下安装boost库
(1)到www.boost.org下载相应的代码包,我下载的是boost_1_58_0.tar.bz2
(2)进入自己的工作目录执行解压操作:
root@test# bzip2 -d boost_1_58_0.tar.bz2
root@test# tar -xvf boost_1_58_0.tar
root@test#$ cd boost_1_58_0
root@boost_1_58_0# ./bootstrap.sh //生成安装工具bjam和b2
(3)这里利用b2工具进行安装,可以使用./b2 --help 查看命令选项
(4)准备安装boost库
root@boost_1_58_0# sudo ./b2 install
安装完毕后的头文件默认是在/usr/local/include目录下,.a和.so在/usr/local/lib目录下。
然后,将需要使用的库sudo cp至/usr/lib 。同时,向ld.so.conf文件中添加
libboost_system.so.1.58.0所在的目录路径。
否则,在执行代码时,ldd会提示找不到.so文件。
./main: error while loading shared libraries: libboost_serialization.so.1.58.0: cannot open shared object file: No such file or directory
方法为:
root@boost_1_58_0# sudo
vi /etc/ld.so.conf
#添加向ld.so.conf文件中添加
libboost_system.so.1.58.0所在的目录路径
root@boost_1_58_0# sudo ldconfig
(5)编译和运行一个使用boost库的C++示例文件,检验boost库是否安装和配置成功。
--build-dir=<builddir> | 编译的临时文件会放在builddir里(编译完就可以把它删除了) |
--stagedir=<stagedir> | 存放编译后库文件的路径,默认是stage |
--build-type=complete | 编译所有版本,不然只会编译一小部分版本(相当于: variant=release,threading=multi; link=shared|static;runtime-link=shared) |
variant=debug|release | 决定编译什么版本(Debug or Release) |
link=static|shared | 决定使用静态库还是动态库 |
threading=single|multi | 决定使用单线程还是多线程库 |
runtime-link=static|shared | 决定是静态还是动态链接C/C++标准库 |
--with-<library> | 只编译指定的库,如输入--with-regex就只编译regex库了 |
--show-libraries | 显示需要编译的库名称 |
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- boost相关小知识(长期顶置更新)
- Lua中调用C++函数示例
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- C++联合体转换成C#结构的实现方法
- C++编写简单的打靶游戏
- C++ 自定义控件的移植问题
- C++变位词问题分析
- C/C++数据对齐详细解析
- C++基于栈实现铁轨问题
- C++中引用的使用总结
- 使用Lua来扩展C++程序的方法
- C++中调用Lua函数实例
- Lua和C++的通信流程代码实例
- C与C++之间相互调用实例方法讲解
- 解析C++中派生的概念以及派生类成员的访问属性