zoukankan      html  css  js  c++  java
  • 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 2013lipengoostoost_1_58_0

    "库目录": stage下的链接库目录,例:D:Visual Stdio 2013lipengoostoost_1_58_0stagelib

    通用属性->链接器->常规:"附加库目录":同上面的"库目录",例:D:Visual Stdio 2013lipengoostoost_1_58_0stagelib


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

    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<<" "<<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>  





    程序正确运行:

  • 相关阅读:
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    Python, pandas: how to sort dataframe by index// Merge two dataframes by index
    永久修改VS include目录
    <OFFER05> 05_ReplaceSpaces替换空格
    用二叉树进行排序 x (从小到大)
  • 原文地址:https://www.cnblogs.com/zhoug2020/p/5978100.html
Copyright © 2011-2022 走看看