windows下boost库的基本使用方法

简介:

因为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、打开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


至此环境就配置好了,下面测试一下:

[cpp]  view plain  copy
  1. <span style="font-size:14px;"><pre name="code" class="cpp"><span style="font-family:Courier New;">#include <cstdlib>  
  2.   
  3. #include <iostream>  
  4. #include <vector>  
  5. #include <iterator>  
  6. #include <algorithm>  
  7.   
  8. #include <boost/timer.hpp>  
  9. #include <boost/progress.hpp>  
  10.   
  11. #include <libs/date_time/src/gregorian/greg_names.hpp>  
  12. #include <libs/date_time/src/gregorian/date_generators.cpp>  
  13. #include <libs/date_time/src/gregorian/greg_month.cpp>  
  14. #include <libs/date_time/src/gregorian/gregorian_types.cpp>  
  15.   
  16. #include <boost/date_time/posix_time/posix_time.hpp>  
  17.   
  18. using namespace boost;  
  19.   
  20. int main()  
  21. {  
  22.     boost::timer t;  
  23.   
  24.     boost::progress_display pd(100);  
  25.   
  26.     for (int i = 0; i < 100; ++i) //进度条  
  27.     {  
  28.         ++pd;  
  29.     }  
  30.   
  31.     boost::gregorian::date dt(2009, 12, 8); //date_time 库  
  32.     assert(dt.year() == 2009);  
  33.     assert(dt.day() == 8);  
  34.     boost::gregorian::date::ymd_type ymd = dt.year_month_day();  
  35.     std::cout<<"\n"<<ymd.year<<"/"<<ymd.month<<"/"<<ymd.day<<" the day is "  
  36.         <<dt.day_of_year() <<" days of this year"<< std::endl;  
  37.   
  38.     std::cout << boost::gregorian::to_iso_extended_string(dt) << std::endl; //转换为其他格式  
  39.     std::cout << boost::gregorian::to_iso_string(dt) << std::endl;  
  40.     std::cout << boost::gregorian::to_simple_string(dt) << std::endl<<std::endl;  
  41.   
  42.     //对数组排序操作  
  43.     std::vector<int> test_vc(100);  
  44.     std::vector<int>::iterator beg_it = test_vc.begin();  
  45.     std::vector<int>::iterator end_it = test_vc.end();  
  46.     std::srand(std::time(NULL));  
  47.   
  48.     std::for_each(beg_it, end_it, [](int& n){n = rand(); });  
  49.     std::copy(beg_it, end_it, std::ostream_iterator<int>(std::cout, " "));  
  50.     std::cout << std::endl << std::endl;  
  51.     std::sort(beg_it, end_it, std::greater<int>());  
  52.     std::copy(beg_it, end_it, std::ostream_iterator<int>(std::cout, " "));  
  53.     std::cout << std::endl<<std::endl;  
  54.   
  55.     boost::posix_time::ptime pt(boost::gregorian::date(2005, 2, 6));  
  56.   
  57.     std::cout << t.elapsed() << "s" << std::endl; //程序运行时间  
  58.   
  59.     system("pause");  
  60.   
  61.     return 0;  
  62. }</span></span>  





程序正确运行:



本文转自莫水千流博客园博客,原文链接:http://www.cnblogs.com/zhoug2020/p/5978100.html,如需转载请自行联系原作者

相关文章
|
5月前
|
Ubuntu API C++
C++标准库、Windows API及Ubuntu API的综合应用
总之,C++标准库、Windows API和Ubuntu API的综合应用是一项挑战性较大的任务,需要开发者具备跨平台编程的深入知识和丰富经验。通过合理的架构设计和有效的工具选择,可以在不同的操作系统平台上高效地开发和部署应用程序。
224 11
|
安全 网络协议 Linux
telnet在windows和linux上的使用方法
Telnet是一个简单且强大的网络工具,广泛用于远程管理和网络诊断。尽管存在安全风险,但在受控环境中,Telnet仍然是一个非常有用的工具。通过本文的介绍,您应该能够在Windows和Linux系统上安装并使用Telnet进行各种网络操作。
2779 18
|
人工智能 数据处理 C#
AI Dev Gallery:微软开源 Windows AI 模型本地运行工具包和示例库,助理开发者快速集成 AI 功能
微软推出的AI Dev Gallery,为Windows开发者提供开源AI工具包和示例库,支持本地运行AI模型,提升开发效率。
887 13
|
XML 网络安全 数据格式
Kali渗透测试:Windows事件管理工具wevtutil的使用方法(一)
Kali渗透测试:Windows事件管理工具wevtutil的使用方法(一)
464 2
|
XML 网络安全 数据格式
Kali渗透测试:Windows事件管理工具wevtutil的使用方法(二)
Kali渗透测试:Windows事件管理工具wevtutil的使用方法(二)
317 1
|
安全 网络协议 前端开发
Windows下nmap命令及Zenmap工具的使用方法
【7月更文挑战第28天】zenmap是一个开放源代码的网络探测和安全审核的工具,它是nmap安全扫描工具的图形界面前端,它可以支持跨平台。使用zenmap工具可以快速地扫描大型网络或单个主机的信息。如扫描主机提供了哪些服务,使用的操作系统等。
2132 8
|
Linux 开发工具 计算机视觉
QtCreator 跨平台开发添加动态库教程(以OpenCV库举例)- Windows篇
Qt是跨平台的开发工具,推荐使用QtCreator进行Windows和Linux开发。在Windows下,使用Visual Studio创建动态库时,需要配置.lib文件并确保运行时.dll与.exe在同一目录。在QtCreator中添加DLL动态库,可以通过右键项目,选择添加库,然后在Details界面配置库文件、包含路径和平台,最后更新PRO文件并进行清除、qmake和构建步骤。运行时同样需确保.dll文件与可执行文件在同一目录。
1231 5
|
安全 C++ Windows
Windows下C++使用gRPC(Qt和VS,含文件包和使用方法)
Windows下C++使用gRPC(Qt和VS,含文件包和使用方法)
|
Windows 计算机视觉 Linux
QtCreator 跨平台开发添加动态库教程(以OpenCV库举例)- Windows篇
该文档介绍了Qt的跨平台特性,并推荐在Windows和Linux开发中使用QtCreator。在Windows下添加动态库,可以通过Visual Studio配置.lib文件和.dll文件,或在QtCreator中使用&quot;添加库&quot;功能。在QtCreator中,选择库文件、包含路径,并配置Details,然后更新.pro文件,清除、qmake及构建项目。运行时确保.dll与.exe在同一目录下。
716 0
QtCreator 跨平台开发添加动态库教程(以OpenCV库举例)- Windows篇