Windows下编译和安装Boost库
2015-12-04 13:56
323 查看
因为boost都是使用模板的技术,所以所有代码都是写在一个.hpp头文件中。这样boost中的大部分内容是不需要编译生成相应的链接库,只需要设置下面的包含目录(或者设置一下环境变量),在源文件中包含相应的头文件就可以使用了。少部分库需要生成链接库来使用。
下面介绍完整安装boost库的方法:
1、首先到boost官网去下载最新的版本的boost库:
http://www.boost.org/
2、解压文件,在命令提示符中打开到boost库的根目录下:
双击bootstrap.bat文件,生成bjam.exe,执行以下命令:
bjam --toolset=msvc --build-type=complete stage
或者直接双击bjam.exe.
等待程序编译完成,大约要两个小时左右,会在boost根目录下生成bin.v2和stage两个文件夹,其中bin.v2下是生成的中间文件,大小在2.7G左右,可以直接删除。stage下才是生成的dll和lib文件。
3.配置开发环境
打开Visual Studio,在 工具->选项->项目和解决方案->VC++目录 条目下配置Boost包含文件和库文件目录,这样以后就不用每次都要配置Boost目录。
4.编写程序测试:
#include "stdafx.h"
#include <iostream>
#include <boost/lexical_cast.hpp>
int main()
{
int a = boost::lexical_cast<int>("123");
double b = boost::lexical_cast<double>("123.0123456789");
std::string s0 = boost::lexical_cast<std::string>(a);
std::string s1 = boost::lexical_cast<std::string>(b);
std::cout << "number is: " << a << " " << b << std::endl;
std::cout << "string is: " << s0 << " " << s1 << std::endl;
int c = 0;
try
{
c = boost::lexical_cast<int>("abcd");
}
catch (boost::bad_lexical_cast & e)
{
std::cout << e.what() << std::endl;
return -1;
}
return 0;
}
下面介绍完整安装boost库的方法:
1、首先到boost官网去下载最新的版本的boost库:
http://www.boost.org/
2、解压文件,在命令提示符中打开到boost库的根目录下:
双击bootstrap.bat文件,生成bjam.exe,执行以下命令:
bjam --toolset=msvc --build-type=complete stage
或者直接双击bjam.exe.
等待程序编译完成,大约要两个小时左右,会在boost根目录下生成bin.v2和stage两个文件夹,其中bin.v2下是生成的中间文件,大小在2.7G左右,可以直接删除。stage下才是生成的dll和lib文件。
3.配置开发环境
打开Visual Studio,在 工具->选项->项目和解决方案->VC++目录 条目下配置Boost包含文件和库文件目录,这样以后就不用每次都要配置Boost目录。
4.编写程序测试:
#include "stdafx.h"
#include <iostream>
#include <boost/lexical_cast.hpp>
int main()
{
int a = boost::lexical_cast<int>("123");
double b = boost::lexical_cast<double>("123.0123456789");
std::string s0 = boost::lexical_cast<std::string>(a);
std::string s1 = boost::lexical_cast<std::string>(b);
std::cout << "number is: " << a << " " << b << std::endl;
std::cout << "string is: " << s0 << " " << s1 << std::endl;
int c = 0;
try
{
c = boost::lexical_cast<int>("abcd");
}
catch (boost::bad_lexical_cast & e)
{
std::cout << e.what() << std::endl;
return -1;
}
return 0;
}
相关文章推荐
- Linux 基本命令
- web安全测试工具介绍---webscarab
- XMPP学习——3、XMPP协议学习补充
- Oracle的left join中on和where的区别
- 关于电脑的开机机制
- 网页细分图结果分析(Web Page Diagnostics)
- JavaScript基础——实现循环
- oracle对象
- Jquery Table 的基本操作
- easyui--timespinner时间微调组件
- shape的使用
- android-取URI下file或Content对应的文件
- javascript克隆一个对象
- android典型代码系列(六)------drawable图片转换为48dip的bitmap
- Validform 验证
- 矩阵十大经典题目之八 how many ways
- python pip, setuptools,easy_install安装(win8)
- Android开发:shape和selector和layer-list的(详细说明)
- Apache Avro使用入门指南
- android典型代码系列(五)------deviceadmin步骤