boost的编译
第1步:
先从官网(www.boost.org)下载最新版的BOOST源码,如图所示
我这里下的是zip的那个
第2步:
编译源代码(放心.这里是傻瓜式的操作,很容易操作)
(1)先把源代码放在E盘,例如 E:\boost_1_53_0
(2)在源代码中找到一个批处理bootstrap.bat,运行即可
此时会弹出Building Boost.Jam之类,过一会之后,源代码中新增了1个文件bjam.exe
(3)运行bjame.exe即能编译了(花费时间很长,大概20分钟).
问题1:文件大小
下载的boost库80M左右,编译完之后是1.6G,区别是很大.放在磁盘位置大点的地方
问题2:库版本
目前我用的是1.46.1的版本,编译出来的是VS2010版本的库,这句话什么意思?
就是说VS2008不能用1.46.1的版本,会报错
1>正在链接...
1>LINK : fatal error LNK1104: 无法打开文件“libboost_thread-vc90-mt-1_46_1.lib”
中间有个VC90,于是我在BOOST库里1个1个的找这个库,发现没有,但是有个VC100
如图所示:1个是VS2008编译的报错.1个是新版BOOST库并没有VC90,只有VC100
不同的版本可能编译出的库名不一样,一定要注意
PS:问题2本人没遇到,如遇到,网上有一种方法可一试:
配置编译环境:
.../boost_1_53_0/tools/build/v2中的user-config.jam文件,最后增加一行:using msvc : 6.0 : D:/Program Files/Microsoft Visual Studio/VC98/Bin/cl ;注意上行的格式,冒号两边一定有空格,最后分号一定有空格(因为c++代码中并没有如此苛刻的格式限制,所以一开始没太注意,总也解决不了错误,最后试着才找到这个原因)。
msvc : 8.0是VS2005
msvc : 10.0是VS2010
安装完后,下面就讨论一下怎么用了
一共2个例子 第1个:怎样使用BOOST库写个线程的Hello World? 第2个怎样使用BOOST库写try,catch?
--->举例1:怎样使用BOOST库写个线程的Hello World?
第1步:新建一个VS2005控制台应用程序,选择空项目->增加一个C++源文件
可以先用
void main()
{}
测试下,可以编译了
第2步:
添加BOOST创建线程的代码
- #include <iostream>
- #include <boost/thread/thread.hpp>
- void hello()
- {
- std::cout << "Hello world, I'm a thread!" << std::endl;
- }
- int main()
- {
- boost::thread thrd(&hello);
- thrd.join();
- }
第3步:编译,发现报错
1> hello.cpp
...\hello.cpp(2): fatal error C1083: 无法打开包括文件:“boost/thread/thread.hpp”: No such file or directory
即没有包含BOOST文件与BOOST库的文件,怎样添加,如图所示
包含目录的添加:
库目录的添加:
包含目录添加E:\boost_1_53_0
库目录添加E:\boost_1_53_0\stage\lib
添加完这2个就可以编译运行了.结果如下:
举例2:怎样使用BOOST库写try,catch?感觉try,catch在BOOST中用的顶多的,这里顺便也介绍一下写法
第1步:同举例1一样,新建项目,包含文件与库,一样.这里只是在上面的基础上拷贝了一下代码
- #include <iostream>
- #include <string>
- #include <boost/lexical_cast.hpp>
- using namespace std;
- int main()
- {
- //std::cout<<"hello, world!";
- string str = "1234t";
- try
- {
- cout << boost::lexical_cast<int>(str) << endl;
- }
- catch (boost::bad_lexical_cast& e)
- {
- cerr<<"Bad cast: "<< e.what() << endl;
- }
- return 0;
- }
结果如图:
【转自:http://hi.baidu.com/vc_net/item/3dc5d0d9f07741e955347f45,有较多修改】
boost的编译的更多相关文章
- Linux平台Boost的编译方法
本博客(http://blog.csdn.net/livelylittlefish)贴出作 者(三二一@小鱼)相关研究.学习内容所做的笔记,欢迎广大朋友指正! Linux平台Boost的编译方法 Bo ...
- Boost库编译安装
一.Boost库介绍 Boost库是一个经过千锤百炼.可移植.提供源代码的C++库,作为标准库的后备,是C++标准化进程的发动机之一.Boost库由C++标准委员会库工作组成员发起,其 ...
- boost vc编译
0.下载:http://www.boost.org/ 1.编译b2.exe,bjam.exe. 双击根目录下面的bootstrap.bat文件,生成b2.exe,bjam.exe(或者使用vs的命令行 ...
- boost:asio编译
参考:http://hi.baidu.com/need_for_dream/blog/item/c14a28086a504c33e92488b5.html 环境: VS2010, boost1.38. ...
- boost.python编译及演示样例
欢迎转载,转载请注明原文地址:http://blog.csdn.net/majianfei1023/article/details/46781581 linux编译boost的链接:http://bl ...
- boost 部分编译
完整编译boost库需要很长时间,而且我们不一定会用到所有的库. 那么如何只编译只需要的库呢? 解压boost源码,进入解压后的目录 ./bootstrap.sh生成bjam ./bjam --bui ...
- Boost 库编译总结
1. 下载boost库源码,解压缩. 2. 打开vs2010 工具栏tools 下的visual studio command prompt,运行源码目录下的bootstrap.bat,生成bjam. ...
- Boost库编译后命名方式
Boost官网的<Geting Started On Windows>(http://www.boost.org/doc/libs/1_38_0/more/getting_started/ ...
- boost多线程编译出错
添加 -lpthread CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/tools/boost/includeexport CPLUS_INCLUDE_PATH LI ...
随机推荐
- (转载)IE6支持透明PNG图片解决方案:DD_belatedPNG.js
DD_belatedPNG.js 是一个能是IE6支持p显示ng透明图片,而且还支持背景循环(background-repeat)和定位(backgrond-position) ,支持focus,Ho ...
- mysql - join two derived tables
select t1.uid from (select uid from table1) t1 inner join (select uid from table2) t2 where t1.uid=t ...
- [2015hdu多校联赛补题]hdu5301 Buildings
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5301 题目大意:给你一块由1x1方格组成的矩形区域,其中有且仅有一个坏块,现在你要在上面建矩形的房子, ...
- 手把手教你用新浪云容器 Java 搭建自己的网站
经过一段时间的开发,更新,迭代,新浪云容器 Java 环境逐渐成熟起来,相比过去的 Java 运行环境,可用性和易用性都得到了大量的提升.同时也收到了不少用户反馈的使用问题,特此在这篇文章里综合介绍一 ...
- orcl 中decode的妙用
在不认识这个函数之前,我们要对同一张表或者同一查询语句块中的某一个字段进行计算分类统计时,要用到很多函数以及外连接.用这一函数往往可以解决很多复杂的东西. 网上的一段具有代表性的decode用法,不用 ...
- windows下安装composer抛出Composer\Downloader\TransportException异常解决办法
1. 把默认的 secure-http 改成false composer config -g secure-http false 2. 修改配置文件 #修改全局文件(推荐) composer conf ...
- Quickly place a window to another screen using only the keyboard
http://askubuntu.com/questions/22207/quickly-place-a-window-to-another-screen-using-only-the-keyboar ...
- C/C++ 记录时间
http://stackoverflow.com/questions/2808398/easily-measure-elapsed-time https://github.com/picanumber ...
- ajax访问服务器返回json格式
使用ajax访问服务器返回多条数据,比如返回一个表中的所有数据,页面该如何处理呢?如何获取数据呢?一直不会用ajax返回json格式,今天研究了下,分享给大家~ 首先需要引用服务,点击项目右键,添加引 ...
- new(C# 参考)
在 C# 中,new 关键字可用作运算符.修饰符或约束. new 运算符 用于创建对象和调用构造函数. new 修饰符 用于隐藏基类中被继承的成员. new 约束 用于在泛型声明中约束可能用作类型参数 ...