VS2019配置BOOST-v1.70.0库

2023-05-16

文章目录

  • vs2019配置c++ boost库
    • 安装编译Boost c++ library
    • 新建vs2019 c++项目,并添加boost依赖库
    • 代码测试
  • c++ boost库说明
    • 主要分类
    • 常用库
    • 相关图书编辑

vs2019配置c++ boost库

安装编译Boost c++ library

  1. 安装Boost库

    官网下载:https://www.boost.org/users/history/version_1_70_0.html

    最新版本1.70.0. (低于1.7.0的版本可能在vs2019中支持不完善,编译或运行时发生不可预料的bug

  2. 下载好后,解压,得到文件目录如下图,找到其中的bootstrap.bat文件:
    在这里插入图片描述
    双击运行可能出现闪退,最好的办法(亲测有效): 选择vs2019 —> visual studio tools —> vc —> x86_x64 Cross Tools Command Prompt for VS 2,打开命令行:
    在这里插入图片描述
    在这里插入图片描述
    切换到boost_1_70_0的安装目录,(本人安装路径:E:\program\boost_1_70_0)

    cd  E:\program\boost_1_70_0
    bootstrap.bat # 执行
    

执行会发现当前文件夹中增加了几个文件,找到其中的bjam.exe,如下图所示
在这里插入图片描述
命令行执行:

bjam.exe --toolset=msvc-14.1 architecture=x86 address-model=64 link=static --build-type=complete --with-system --with-thread --with-date_time --with-filesystem --with-serialization

Note:

  1. MSVC 版本号对应
  2. vs2019 可以支持boost c++ library 针对msvc-14.1的编译选项

等待5-10min即可完成。

最后两个路径会在使用Boost库时工程属性中包含目录库目录中用到。

The Boost C++ Libraries were successfully built.
the following directory should be added to compiler include paths:
	E:\program\boost_1_70_0
the following directory should be added to linker library paths:
	E:\program\boost_1_70_0\stage\lib

这时boost库已经安装、编译成功。

新建vs2019 c++项目,并添加boost依赖库

点击菜单栏 项目——>属性——>选择VC++目录,在包含目录 和 库目录添加以上2个路径,如下图:
在这里插入图片描述
或可以新建一个系统环境变量BOOST_DIR,值为E:\program\boost_1_70_0。

在path系统环境变量中添加:%BOOST_DIR%;

VC++包含目录中添加: %BOOST_DIR%;

VC++库目录中添加: %BOOST_DIR%\stage\lib;

代码测试

#include <boost/lexical_cast.hpp>     
#include <iostream>   

using namespace std;
using namespace boost;

int main()
{
	//system("chcp 65001");

	double a = lexical_cast<double>("3.1415926");
	string str = lexical_cast<string>("3.1415926");
	cout << "This is a number: " << a << endl;
	cout << "This is a string: " << str << endl;
	int b = 0;
	try {
		b = lexical_cast<int>("neo");
	}
	catch (bad_lexical_cast& e) {
		cout << e.what() << endl;
	}
	return 0;
}

运行输出(正常):

This is a number: 3.14159
This is a string: 3.1415926
bad lexical cast: source type value could not be interpreted as target

c++ boost库说明

c++ boost库官网

官网最新版文档说明:https://www.boost.org/doc/libs/1_70_0/

refer: 百度百科

Boost库是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一,是为C++语言标准库提供扩展的一些C++程序库的总称。 Boost库由C++标准委员会库工作组成员发起,其中有些内容有望成为下一代C++标准库内容。在C++社区中影响甚大,是不折不扣的“准”标准库。Boost由于其对跨平台的强调,对标准C++的强调,与编写平台无关。大部分boost库功能的使用只需包括相应头文件即可,少数(如正则表达式库,文件系统库等)需要链接库。但Boost中也有很多是实验性质的东西,在实际的开发中使用需要谨慎。

Boost库由Boost社区组织开发、维护。其目的是为C++程序员提供免费、同行审查的、可移植的程序库。Boost库可以与C++标准库完美共同工作,并且为其提供扩展功能。Boost库使用Boost License来授权使用。

Boost社区建立的初衷之一就是为C++的标准化工作提供可供参考的实现,Boost社区的发起人Dawes本人就是C++标准委员会的成员之一。在Boost库的开发中,Boost社区也在这个方向上取得了丰硕的成果。在送审的C++标准库TR1中,有十个Boost库成为标准库的候选方案。在更新的TR2中,有更多的Boost库被加入到其中。从某种意义上来讲,Boost库成为具有实践意义的准标准库。
可下载Boost C++ Libraries安装boost库。大部分boost库功能的使用只需包括相应头文件即可,少数(如正则表达式库,文件系统库等)需要链接库。里面有许多具有工业强度的库,如graph库。

主要分类

按照功能分类的Boost库列表
按照实现的功能,Boost 可为大致归入以下20个分类,在下面的分类中,有些库同时归入几种类别。
字符串和文本处理
a) Conversion
b) Format
c) IOStream
d) Lexical Cast
e) Regex
f) Spirit
g) String Algo
h) Tokenizer
i) Wave
j) Xpressive

容器
a) Array
b) Bimap
c) Circular Buffer
d) Disjoint Sets
e) Dynamic Bitset
f) GIL
g) Graph
h) ICL
i) Intrusive
j) Multi-Array
k) Multi-Index
l) Pointer Container
m) Property Map
n) Property Tree
o) Unordered
p) Variant

迭代器
a) GIL
b) Graph
c) Iterators
d) Operators
e) Tokenizer

算法
a) Foreach
b) GIL
c) Graph
d) Min-Max
e) Range
f) String Algo
g) Utility

函数对象和高阶编程
a) Bind
b) Function
c) Functional
d) Functional/Factory
e) Functional/Forward
f) Functional/Hash
g) Lambda
h) Member Function
i) Ref
j) Result Of
k) Signals
l) Signals2
m) Utility

泛型编程
a) Call Traits
b) Concept Check
c) Enable If
d) Function Types
e) GIL
f) In Place Factory, Typed In Place Factory
g) Operators
h) Property Map
i) Static Assert
j) Type Traits

模板元编程

a) Function Types
b) Fusion
c) MPL
d) Proto
e) Static Assert
f) Type Traits

预处理元编程
a) Preprocessors

并发编程

a) Asio
b) Interprocess
c) MPI
d) Thread

数学和数字

a) Accumulators
b) Integer
c) Interval
d) Math
e) Math Common Factor
f) Math Octonion
g) Math Quaternion
h) Math/Special Functions
i) Math/Statistical Distributions
j) Multi-Array
k) Numeric Conversion
l) Operators
m) Random
n) Rational
o) uBLAS

排错和测试

a) Concept Check
b) Static Assert
c) Test

数据结构

a) Any
b) Bitmap
c) Compressed Pair
d) Fusion
e) ICL
f) Multi-Index
g) Pointer Container
h) Property Tree
i) Tuple
j) Uuid
k) Variant

图像处理

a) GIL

输入输出

a) Asio
b) Assign
c) Format
d) IO State Savers
e) IOStreams
f) Program Options
g) Serialization

跨语言混合编程

a) Python

内存管理

a) Pool
b) Smart Ptr
c) Utility

解析
a) Spirit

编程接口
a) Function
b) Parameter

杂项
a) Compressed Pair
b) Conversion
c) CRC
d) Date Time
e) Exception
f) Filesystem
g) Flyweight
h) Lexical Cast
i) Meta State Machine
j) Numeric Conversion
k) Optional
l) Polygon
m) Program Options
n) Scope Exit
o) Statechart
p) Swap
q) System
r) Timer
s) Tribool
t) Typeof
u) Units
v) Utility
w) Value Initialized

编译器问题的变通方案

a) Compatibility
b) Config

常用库

  • Regex
  • 正则表达式库
  • Spirit
  • LL parser framework,用C++代码直接表达EBNF
  • Graph
  • 图组件和算法
  • Lambda
  • 在调用的地方定义短小匿名的函数对象,很实用的functional功能
  • concept check
  • 检查泛型编程中的concept
  • Mpl
  • 用模板实现的元编程框架
  • Thread
  • 可移植的C++多线程库
  • Python
  • 把C++类和函数映射到Python之中
  • Pool
  • 内存池管理
  • smart_ptr
  • 5个智能指针,学习智能指针必读,一份不错的参考是来自CUJ的文章:

相关图书编辑

  • Boost程序库完全开发指南:深入C++“准”标准库
  • C++11/14高级编程:Boost程序库探秘(第3版)
  • Boost程序库探秘:深度解析C++准标准库
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VS2019配置BOOST-v1.70.0库 的相关文章

  • 增强元组+变换

    是否可以进行以下操作 假设我的 boost 元组有
  • Xcode 找不到 cstddef

    由于某种原因 Xcode iOS 无法找到我正在使用的库 Boost 的 cstddef 有谁知道如何解决这一问题 我正在 Mac OS X 10 8 下使用 Xcode 4 6 进行编译 你应该让你的项目全部为 Objective C 将
  • 查找带有 Anaconda cmake 前缀的 boost-python3

    DLDR如何将 cmake 指向 boost python3 库 cmake 不会自动检测到它 我正在尝试建立caffe https github com BVLC caffe对于 Python 3 6 使用提供的 cmake 我的系统规格
  • 使用 bcp 获取可构建的 Boost 提取

    我正在使用 bcp 从 Boost 中提取 Boost Archive 不幸的是我无法构建这个摘录 Boost Archive 不是一个仅包含头文件的库 贾姆抱怨 Unable to load Boost Build could not f
  • Boost 更新失败,现在不确定我拥有哪个版本

    在 Ubuntu 22 04 上运行此命令以获得 Boost 1 82 sudo add apt repository ppa mhier libboost latest sudo apt update sudo apt install l
  • 我如何使用 PyObjects 声明 Boost.Python C++ 类

    我想用 PyObjects 编写一个 C 类 以便从 Python 访问它们 并使用现有的 Python 对象实例引用它们 简而言之 我想在 C 类中存储 管理 Python 对象实例 例如 struct Var PyObject Test
  • 使用 boost 库时加快编译/链接时间

    我在用着提升计划选项 http www boost org doc libs 1 45 0 doc html program options html 并且用它编译非常小的 C 代码需要相当长的时间 10 秒甚至更多 在没有 boost 库
  • 如何将 Boost 库添加到 XCode 6.0 中的 C++ 程序?

    我在用着XCode6 0并且需 要boost程序库 我已经下载了boost 1 57 0 tar gz from http sourceforge net projects boost files boost 1 57 0 http sou
  • 如何构建 Boost::program_options

    我想使用 boost program options 安装boost后 我认为我必须单独构建program options http www boost org doc libs 1 43 0 more getting started wi
  • 如何取消 boost asio io_service 帖子

    如何取消已发布的回调 getIoService gt post boost bind MyClass myCallback this 并保持其他发布的回调不变 问题是我有一些对象从不同线程接收事件 并将它们发布到 ioservice 以便处
  • 为什么 C++11/Boost `unordered_map` 在擦除时不重新散列?

    我想知道为什么 C 11 和 Boost 的 hashmap 在通过迭代擦除元素时不会调整大小 即使这在技术上不是内存泄漏 我认为这可能是应用程序中的一个严重问题 这对我来说是一个隐藏的问题 很难追踪它 并且它实际上可能会影响许多应用程序
  • 它如何清除已经在链中排队的所有已发布任务?

    如何清除已在队列中排队的所有已发布任务io service strand 我在boost文档中没有看到类似的方法 我还没有找到它的需要 因为它可以通过正确设计异步调用链来正确解决 一般来说 Boost Asio API 经过精心设计 可以防
  • 如何使用代理将 boost::asio 连接到 HTTPS 服务器?

    在我们的应用程序中 我们使用 boost asio 来使用 HTTP 和 HTTPS 进行连接 我们还可以使用 HTTP 代理 现在我需要使用代理添加对 HTTPS 服务器的支持 我研究了相当多的样本 发现所需的步骤似乎是 创建到代理的 H
  • 我如何知道谁持有shared_ptr<>?

    I use boost shared ptr在我的 C 应用程序中 内存问题确实很严重 应用程序占用大量内存 但是 因为我将每个新对象放入shared ptr 当应用程序退出时 无法检测到内存泄漏 一定有类似的东西std vector
  • boost::pool<>::malloc 和 boost::pool<>::ordered_malloc 之间有什么区别,什么时候应该使用 boost::pool<>::ordered_malloc?

    我正在使用 boost pool 但我不知道什么时候使用boost pool lt gt malloc and boost pool lt gt ordered malloc so 有什么区别boost pool lt gt malloc
  • 如何动态查找连接组件

    使用不相交集数据结构可以很容易地得到图的连通分量 而且 它只是支持增量连接组件 http www boost org doc libs 1 46 1 libs graph doc incremental components html 然而
  • 使用 Boost program_options 指定级别(例如 --verbose)

    我的一些选择有多个级别 例如的 冗长 我希望我的用户在以下两种等效样式之间进行选择 no argument verbosity of 1 my program v count the v s verbosity of 4 my progra
  • 安装 ROS 时 Cmake 未检测到 boost-python

    我一直在尝试在我的 Mac 上安装 ROS 并根据不同版本的 boost 使用不同的库解决了错误 然而 似乎有一个库甚至没有检测到 boost python 这是我得到的错误 CMake Error at usr local share c
  • 提升shared_from_this<>()

    有人可以用几句话概括一下如何提升shared from this lt gt 应该使用智能指针 特别是从使用绑定函数在 io service 中注册处理程序的角度来看 编辑 一些回复要求提供更多背景信息 基本上 我正在寻找 陷阱 即人们使用
  • 信号与信号2

    我的应用程序可能会受益于使用 boost 的信号库之一而不是本土解决方案 该应用程序是多线程的 但执行信号处理的部分是单线程的 如果多线程不是问题 是否有任何理由更喜欢 Boost Signals2 而不是 Boost Signal Boo

随机推荐

  • @SuppressWarnings

    简介 xff1a java lang SuppressWarnings是J2SE 5 0中标准的Annotation之一 可以标注在类 字段 方法 参数 构造方法 xff0c 以及局部变量上 作用 xff1a 告诉编译器忽略指定的警告 xf
  • 欢迎使用CSDN-markdown编辑器

    欢迎使用Markdown编辑器写博客 本Markdown编辑器使用StackEdit修改而来 xff0c 用它写博客 xff0c 将会带来全新的体验哦 xff1a Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传
  • Linux之强大的awk

    来自 梦想家 Haima s blog gt http blog dreamwe cn awk简介 awk是Linux中的一个命令 xff0c 用来做文本处理与分析 xff0c 功能简单强悍 xff0c 同时它也是一门编程语言 awk处理文
  • ucos源码分析(一)

    时间 2018 01 27 本人目前是大三学生 电子信息工程专业 xff0c 在大学前俩年的时间 xff0c 一直在使用和学习单片机 xff0c 不过也仅仅是从 xff15 xff11 到 xff13 xff12 xff0c 马上要面临就业
  • 随笔——Python & C++ 混用——使用cmake生成c++动态库

    Python amp C 43 43 混用 xff0c 使用cmake 生成c 43 43 动态库 xff0c 可供python调用 说明 xff1a test cpp为源文件 add h为头文件 源文件使用第三方库opencv CMake
  • 机会都是留给有准备的人,你在准备什么?| 每天成就更大成功

    最近养成一个习惯 xff0c 就是每晚抄书 xff0c 大概200字左右 xff0c 在抄书的过程中反思了一个问题 xff1a 因为字写的不漂亮 xff0c 于是就在抄书的时候就有意的去练字 xff0c 这样抄书的精力就被分散了一部分出去
  • 《SQL Server 2005开发技术大全》分享一本书

    数据库是一个非常重要的领域 xff0c 不管是什么样的系统 xff0c 都必须要与数据库打交道 xff0c 因此作为一个程序员来讲 xff0c 数据库的基本知识技能是必须要掌握的 我接触C 已经有两年半的时间了吧 xff0c 在学习之初是接
  • golang语言rsa加解密及签名验签

    golang语言rsa加解密及签名验签 96 rsa 96 算法概述 96 Rsa 96 结构体封装封装的优点使用案例 rsa算法 概述 rsa是一种非对称的可逆的加密算法 xff0c 对加密数据长度有限制 xff0c 同时rsa也提供了数
  • 异常与错误处理

    异常与错误处理 PHP的异常与错误是分开的 xff0c 当程序出现异常时会throw一个 Exception 或子类 对象 xff0c 但是当出现错误时会触发一个错误 1 异常处理 1 1 通过try catch主动处理异常 span cl
  • 设计模式

    1 什么是模式 设计模式是对某些典型易变问题的特定解决方案 xff0c 这些问题和解决方案经过分类总结 xff0c 并且为了方便交流给每个解决方案都起了特定的名字 模式是为了解决变化的问题 xff0c 将变化的问题进行封装 xff0c 让变
  • pdo-mysql

    pdo mysql PHP连接数据库推荐使用PDO xff0c PDO扩展为PHP访问数据库定义了一个轻量级接口 我们可以通过实现PDO接口的每个数据库驱动来访问数据库服务 访问mysql数据库服务 xff0c 我们使用PDO MYSQL驱
  • db封装

    db封装 以下Connection类封装支持以下几个特性 1 参数绑定防止sql注入2 读写分离3 多主多从 xff0c 多节点负载均衡4 故障自动摘除及自动恢复 代码实现 span class token delimiter import
  • 数据结构

    1 数据结构 提到算法不能不提数据结构 xff0c 数据结构就是数据元素按照一种或多种关系的集合 xff0c 按照逻辑结构划分 xff0c 可以分为 xff1a 1 1 集合 集合是由一堆无序的 相关联的 xff0c 且不重复的数据元素组成
  • 数据切分——Atlas介绍

    Atlas是由 Qihoo 360公司Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目 它在MySQL官方推出的MySQL Proxy 0 8 2版本的基础上 xff0c 修改了大量bug xff0c 添加了很多功能
  • Nginx负载均衡:分布式/热备Web Server的搭建

    Nginx是一款轻量级的Web 服务器 反向代理服务器 及电子邮件 xff08 IMAP POP3 xff09 代理服务器 xff0c 并在一个BSD like 协议下发行 由俄罗斯的程序设计师Igor Sysoev所开发 xff0c 供俄
  • 数据切分——Atlas读写分离Mysql集群的搭建

    关于数据切分的原理可以参见博客 xff1a http blog csdn net jhq0113 article details 44226789 关于Atlas的介绍可以参见博客 xff1a http blog csdn net jhq0
  • k8s 官方文档

    k8s 官方文档 https kubernetes io zh docs home
  • 数据切分——Mysql分区表的建立及性能分析

    Mysql的安装方法可以参考 xff1a http blog csdn net jhq0113 article details 43812895 Mysql分区表的介绍可以参考 xff1a http blog csdn net jhq011
  • 利用C++求解一元二次方程

    题目 xff1a 求解一元二次方程 xff1a ax 43 bx 43 c 61 0 的解 xff0c 其中a 61 1 b 61 3 c 61 2 分析 xff1a 大家都知道一元二次方程的解有三种情况 xff0c 即考虑 61 xff0
  • VS2019配置BOOST-v1.70.0库

    文章目录 vs2019配置c 43 43 boost库安装编译Boost c 43 43 library新建vs2019 c 43 43 项目 xff0c 并添加boost依赖库代码测试 c 43 43 boost库说明主要分类常用库相关图