Windows下Boost库的安装与使用

Posted nanke_yh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows下Boost库的安装与使用相关的知识,希望对你有一定的参考价值。

目录

1、基本介绍

2、下载安装

3、配置boost环境(VS2010)

4、测试


1、基本介绍

        Boost库是为C++语言标准库提供扩展的一些C++程序库的总称,由Boost社区组织开发、维护。其目的是为C++程序员提供免费、同行审查的、可移植的程序库。Boost库可以与C++标准库完美共同工作,并且为其提供扩展功能。 (百度文库

        Boost库内集合了大量地算法和功能实现函数,其大致有20个分类:字符串和文本处理、容器、迭代子(Iterator)、算法、函数对象和高阶编程、泛型编程、模板元编程、预处理元编程、并发编程、数学相关、纠错和测试、数据结构、输入/输出、跨语言支持、内存相关、语法分析、杂项。这些库中有些可归入多个分类。

2、下载安装

首先获取boost库,可以直接在官网上(https://www.boost.org/)下载。

选择一个版本下载到本地即可,这里下载的是boost_1_79_0.zip     06-Apr-2022 21:37 186.40 MB

然后解压安装包到boost_1_79_0文件夹。

这里需要说明一下,刚开始拿到压缩包解压后,想着能够像GDAL库一样,直接拷贝到工程目录下进行包含引用。然而发现引用进去文件报错不能打开。

所以boost库不能直接拷贝进去使用,还是需要编译一下静态库进而引用的。这里的编译与GDAL和OpenCV的安装有一定的区别,这里的编译安装,只是在对应的文件下生成静态库。

然后在boost库的根目录(解压目录boost_1_79_0)下:(图文可见

1、双击bootstrap.bat文件,生成b2.exe;

2、在cmd中输入以下命令:(未尝试)

bjam --toolset=msvc --build-type=complete stage ,回车

或者双击b2.exe运行。

3、等待程序编译完成,大约要十几分钟到两个小时左右,会在boost_1_79_0目录下生成bin.v2和stage两个文件夹,其中bin.v2下是生成的中间文件,大小在2.4G左右,可以直接删除。stage下才是生成的dll和lib文件。

3、配置boost环境(VS2010)

项目->属性,在弹出的属性对话框中:

1、配置属性->VC++目录:

(1)、"包含目录": boost的根目录,例:D:\\my_workspace\\C_program\\C_boost\\boost_1_79_0

(2)、"库目录": stage下的链接库目录,例:D:\\my_workspace\\C_program\\C_boost\\boost_1_79_0\\stage\\lib

2、配置属性->链接器->常规:"附加库目录":同上面的"库目录",例:D:\\my_workspace\\C_program\\C_boost\\boost_1_79_0\\stage\\lib

4、测试

#include <iostream>
#include <boost/version.hpp>
#include <boost/config.hpp>

using namespace std;
int main()

	cout<<BOOST_VERSION<<endl;
	cout<<BOOST_LIB_VERSION<<endl;
	cout<<BOOST_PLATFORM<<endl;
	cout<<BOOST_COMPILER<<endl;
	cout<<BOOST_STDLIB<<endl;
	getchar();
	return 0;

 以上就将boost库引入了vs工程,下面就可以愉快地调用其开发实现自己的任务了。

其他测试

#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/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;

以上是关于Windows下Boost库的安装与使用的主要内容,如果未能解决你的问题,请参考以下文章

windows下boost怎样安装与使用说明

windows下 boost库的安装

windows下boost库的基本用法

Boost标准库安装

Boost标准库安装

安装Boost x86