windows下boost库的基本使用方法
因为boost都是使用模板的技术,所以所有代码都是写在一个.hpp头文件中。这样boost中的大部分内容是不需要编译生成相应的链接库,只需要设置下面的包含目录(或者设置一下环境变量),在源文件中包含相应的头文件就可以使用了。少部分库需要生成链接库来使用。
下面介绍完整安装boost库的方法:
1、首先到boost官网去下载最新的版本的boost库:
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、打开vs:
视图->属性管理器->当前项目->Debug|Win32->Microsoft.Cpp.Win32.user双击
在弹出的属性对话框中:
通用属性->VC++目录:"包含目录": boost的根目录,例: D:\Visual Stdio 2013\lipeng\boost\boost_1_58_0
"库目录": stage下的链接库目录,例:D:\Visual Stdio 2013\lipeng\boost\boost_1_58_0\stage\lib
通用属性->链接器->常规:"附加库目录":同上面的"库目录",例:D:\Visual Stdio 2013\lipeng\boost\boost_1_58_0\stage\lib
至此环境就配置好了,下面测试一下:
- <span style="font-size:14px;"><pre name="code" class="cpp"><span style="font-family:Courier New;">#include <cstdlib>
- #include <iostream>
- #include <vector>
- #include <iterator>
- #include <algorithm>
- #include <boost/timer.hpp>
- #include <boost/progress.hpp>
- #include <libs/date_time/src/gregorian/greg_names.hpp>
- #include <libs/date_time/src/gregorian/date_generators.cpp>
- #include <libs/date_time/src/gregorian/greg_month.cpp>
- #include <libs/date_time/src/gregorian/gregorian_types.cpp>
- #include <boost/date_time/posix_time/posix_time.hpp>
- using namespace boost;
- int main()
- {
- boost::timer t;
- boost::progress_display pd(100);
- for (int i = 0; i < 100; ++i) //进度条
- {
- ++pd;
- }
- boost::gregorian::date dt(2009, 12, 8); //date_time 库
- assert(dt.year() == 2009);
- assert(dt.day() == 8);
- boost::gregorian::date::ymd_type ymd = dt.year_month_day();
- std::cout<<"\n"<<ymd.year<<"/"<<ymd.month<<"/"<<ymd.day<<" the day is "
- <<dt.day_of_year() <<" days of this year"<< std::endl;
- std::cout << boost::gregorian::to_iso_extended_string(dt) << std::endl; //转换为其他格式
- std::cout << boost::gregorian::to_iso_string(dt) << std::endl;
- std::cout << boost::gregorian::to_simple_string(dt) << std::endl<<std::endl;
- //对数组排序操作
- std::vector<int> test_vc(100);
- std::vector<int>::iterator beg_it = test_vc.begin();
- std::vector<int>::iterator end_it = test_vc.end();
- std::srand(std::time(NULL));
- std::for_each(beg_it, end_it, [](int& n){n = rand(); });
- std::copy(beg_it, end_it, std::ostream_iterator<int>(std::cout, " "));
- std::cout << std::endl << std::endl;
- std::sort(beg_it, end_it, std::greater<int>());
- std::copy(beg_it, end_it, std::ostream_iterator<int>(std::cout, " "));
- std::cout << std::endl<<std::endl;
- boost::posix_time::ptime pt(boost::gregorian::date(2005, 2, 6));
- std::cout << t.elapsed() << "s" << std::endl; //程序运行时间
- system("pause");
- return 0;
- }</span></span>
程序正确运行:
windows下boost库的基本使用方法的更多相关文章
- Windows下python库的常用安装方法
目录: 1.pip安装(需要pip) 2.通过下载whl文件安装(需要pip) 3.在pythn官网下载安装包安装(不需要pip) 方法一:pip安装. 这是最 ...
- Windows下静态库与动态库的创建与使用
Windows下静态库与动态库的创建与使用 学习内容:本博客介绍了Windows下使用Visual C++ 6.0制作与使用静态库与动态库的方法. --------CONTENTS-------- 一 ...
- Windows下获取本机IP地址方法介绍
Windows下获取本机IP地址方法介绍 if((hostinfo = gethostbyname(name)) != NULL) { #if 1 ; printf("IP COUNT: % ...
- Windows下mysql忘记密码的解决方法
Windows下mysql忘记密码的解决方法 mysql5.0 http://www.jb51.net/article/21984.htm方法一: 1.在DOS窗口下输入 net stop mysql ...
- windows下重置mysql的root密码方法介绍(转)
自己在内网操作的,遇到了一些的问题,其中一个是需要重置密码的,所以网上找了两篇文章,都有一些借鉴的地方. 版本mysql5.7.2,linux系统 除了参考文章还有几点说明: service mysq ...
- windows下git库的ssh连接,使用public key的方法
在windows下进行项目开发,使用git,通过ssh方式与git库连接,而ssh方式用public key实现连接. 首先需要下载mygit,安装后使用git bash.git bash(有GUI界 ...
- Windows下动态库的隐式调用
多年的工作经验告诉我Windows下使用动态库最简单的方法:使用def导出函数,然后隐式调用. 具体做法如下: (1)首先使用visual studio 创建“Win32项目”,如下图: (2)然后在 ...
- Linux 下 boost 库的安装,配置个人环境变量
部分引自: https://blog.csdn.net/this_capslock/article/details/47170313 1. 下载boost安装包并解压缩到http://www.boos ...
- c++动态库封装及调用(2、windows下动态库创建)
DLL即动态链接库(Dynamic-Link Libaray)的缩写,相当于Linux下的共享对象.Windows系统中大量采用了DLL机制,甚至内核的结构很大程度依赖与DLL机制.Windows下的 ...
随机推荐
- JavaWeb学习记录(五)——Servlet随机产生验证码
随机产生验证码的工具类: import java.awt.Color;import java.awt.Graphics;import java.awt.image.BufferedImage;impo ...
- 关于linux软连接
以前一直搞不懂linux软连接用什么 只知道是类似于linux的快捷方式 sudo ln -s /home/hadoop/bigdata/jdk1.7.0_79/ /usr/local/jdk(创建软 ...
- POJ-2486 Apple Tree (树形DP)
题目大意:一棵点带权有根树,根节点为1.从根节点出发,走k步,求能收集的最大权值和. 题目分析:从一个点向其某棵子树出发有三种可能的情况: 1.停留在那棵子树上: 2.再回到这个点: 3.经过这个点走 ...
- const 常引用
常类型是指使用类型修饰符 const 说明的类型,常类型的变量或对象的值是不能被更新的. 这篇主要说常引用.常引用是指所引用的对象不能被更新. 在实际应用中,常引用往往用来作为函数的形参,这样的参数称 ...
- Android度量单位说明(DIP,DP,PX,SP)
本文转载于:http://blog.sina.com.cn/s/blog_6b26569e0100xw6d.html (一)概念 dip: device independent pixels(设备独立 ...
- pip安装模块警告InsecurePlatformWarning: A true SSLContext object is not available.
在用pip7.1.2版本安装第三方模块时出现了如下警告: /usr/lib/python2.7/site-packages/pip-7.1.2-py2.7.egg/pip/_vendor/reques ...
- Java 控制反转和依赖注入模式【翻译】【整理】
Inversion of Control Containers and the Dependency Injection pattern --Martin Fowler 本文内容 Component ...
- Html-双斜杠//开头的URL(依赖协议的URL)
今天看京东HTTPS,发现链接都是这种 <a href="//chaoshi.jd.com">京东超市</a> URL是以双斜杠"//" ...
- 大白话系列之C#委托与事件讲解(一)
从序言中,大家应该对委托和事件的重要性有点了解了吧,虽然说我们现在还是能模糊,但是从我的大白话系列中,我会把这些概念说的通俗易懂的.首先,我们还是先说说委托吧,从字面上理解,只要是中国人应该都知道这个 ...
- MVC View中获取Url参数的值
如果url是 /home/index?id=3 直接Request就ok. Razor方法 @Html.ViewContext.RouteData.Values["id"] @Re ...