VS2017 配置 boost_1_70
1. 下载与安装
1.1 安装方法1
(1) 下载
或者使用 https://sourceforge.net/projects/boost/files/boost-binaries/
当前最新版本是1.70.0
(2)配置
下载好后,解压到自己的IDE库目录中,找到其中的bootstrap.bat文件
选择vs2017 —> visual studio tools —> vc —> x86_x64 Cross Tools Command Prompt for VS 2,打开命令行:
切换到boost_1_70_0的安装目录。执行那个.bat文件
(3)执行后,将会在boost当前目录下增加了几个文件,找到其中的bjam.exe
(4)生成 包含目录和库目录
命令行执行:
- bjam.exe install stage --toolset=msvc-14.1 architecture=x86 address-model=64 --stagedir="D:\Pros\IDE\boost_1_70_0_comp\boost_lib64-msvc-14.1" link=static runtime-link=shared runtime-link=static --build-type=complete --with-system --with-thread --with-date_time --with-filesystem --with-serialization threading=multi debug release
b2的更多使用方式,输入 b2 --help 便可查看。
注意,执行的命令“--with-system --with-thread --with-date_time --with-filesystem --with-serialization”,会仅生成这几个库,如boot_iostreams等库就不会生成。
没有with的话,就默认全部输出。
Note:
1) 有关b2的参数
// 如果要获取动态库:
bjam install stage --toolset=msvc-14.1 --stagedir="C:\Boost\boost_vc_120" link=shared runtime-link=shared threading=multi debug release
// 如果是要获取静态库:
bjam install stage --toolset=msvc-14.1 --stagedir="C:\Boost\boost_vc_120" link=static runtime-link=static threading=multi debug release
其中,注意修改--toolset=msvc-14.1,将14.1修改成对应的vs版本号,14.1是VS2017的版本号。
目标地址也要修改成你所需的。
或参考, 增加如下参数
- --without-graph --without-graph_parallel
注意,不要漏了install,它会帮你把头文件集合到一个文件夹中。
MSVC 版本号对应:
打开Visual Studio Installer,选择相应的工具集进行安装。
- MSVC++ 14.1 _MSC_VER == ??00 (Visual Studio 2017)
- MSVC++ 14.0 _MSC_VER == 1900 (Visual Studio 2015)
- MSVC++ 12.0 _MSC_VER == 1800 (Visual Studio 2013)
- MSVC++ 11.0 _MSC_VER == 1700 (Visual Studio 2012)
- MSVC++ 10.0 _MSC_VER == 1600 (Visual Studio 2010)
- MSVC++ 9.0 _MSC_VER == 1500 (Visual Studio 2008)
- MSVC++ 8.0 _MSC_VER == 1400 (Visual Studio 2005)
- MSVC++ 7.1 _MSC_VER == 1310 (Visual Studio 2003)
- MSVC++ 7.0 _MSC_VER == 1300
- MSVC++ 6.0 _MSC_VER == 1200
- MSVC++ 5.0 _MSC_VER == 1100
vs2017 可以支持boost c++ library 针对msvc-14.1的编译选项。
等待5-10min即可完成。
2)直接用运行b2.exe
可以在文件夹中找到它,然后双击。后面就是漫长的编译过程啦,至少需要二十来分钟。
最后两个路径会在使用Boost库时工程属性中包含目录和库目录中用到。
这时boost库已经安装、编译成功。
1.2 安装方法2 (博主推荐)
或者使用下面的方式进行操作:
也可以换下载路径:https://dl.bintray.com/boostorg/release/1.70.0/binaries/ 去下载。
此时使用命令:
- bjam stage --toolset=msvc-14.1 architecture=x86 address-model=64 --without-graph --without-graph_parallel
--stagedir="your_root_path_of_boost\boost_1_70_0\bin\vc141-x64" link=static runtime-link=shared runtime-link=static threading=multi debug release
搭配环境变量:
- your_root_path_of_boost\boost_1_70_0
- your_root_path_of_boost\boost_1_70_0\bin\vc14-x64\lib
1.3 出现问题
如果在类似VS调用时,出现错误 LNK1104 无法打开文件“libboost_thread-vc141-mt-gd-x64-1_69.lib”
下面是结局的步骤。先说一下报错的原因,这个文件名是libboost_thread-vc141-mt-gd-1_69.lib,
第一个表示的是vc141表示使用的是vc141进行编辑的,也就是vc2017,如果是vs2015就应该出来vc140;
第二个mt表示的是使用threading=muti多线程编译出来的。
第三个gd表示的是debug版本,与其对应的是release版本。
第四个x64表示的是64位系统,如果是x86表示的就是32位系统,还有1_69表示的就是boost版本是1_69_0.,如果是1_70表示的就是boost1_70_0。所以这个地方注意两点,1就是你下载的boost版本要对应,2就是使用vs编译的版本要对应。
使用 1.2 方法下载boost。使用VS开发人员命令提示,右键使用管理员身份打开。
然后运行里面的bootstrap.bat文件。
然后使用下列语句进行编译:
bjam stage --toolset=msvc-14.1 --without-python --stagedir="c:\Boost" link=static runtime-link=shared runtime-link=static threading=multi debug release
然后就是等待漫长的编译过程,在这个过程中,我们可以先看一下编译出来的东西是不是跟我们预期的一样的。
可以看到写的路径c:\boost里面已经有了一个lib文件夹,这里面就是我们所需要的lib
2. 测试
(1)新建vs2017 c++项目,并添加boost依赖库
点击菜单栏 项目——>属性——>选择VC++目录,在包含目录 和 库目录添加以上2个路径。
(2)代码
- #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;
- }
参考VS工程的源码: boost_test.rar
3、boost库的说明
官网最新版文档说明:https://www.boost.org/doc/libs/1_70_0/
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库。
3.1 主要分类
按照功能分类 的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
- 3.2 常用库
- 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++准标准库
参考文章
VS2017 配置 boost_1_70的更多相关文章
- Qt5.11.1安装与VS2017配置
Qt5.11.1安装与VS2017配置 转 https://blog.csdn.net/gaojixu/article/details/82185694 文章目录 Qt5.11.1安装与VS2017配 ...
- VS2017 配置QT5
QT安装 1. QT下载 2. 安装过程中,组件的选择(图自https://blog.csdn.net/gaojixu/article/details/82185694) 3. 安装完成 VS2017 ...
- OpenCV3.42+VS2017配置+模块计算机类型“X86”与目标计算机类型“x64”冲突”的问题解决
目录 OpenCV3.42+VS2017配置 Visual Studio 2017 第三方依赖设置,附加依赖项和附加库目录 "fatal error LNK1112: 模块计算机类型&quo ...
- VS2017配置opencv-4.2.0详细步骤
VS2017配置opencv-4.2.0详细步骤 1.下载opencv的安装包并解压.下载网址https://sourceforge.net/projects/opencvlibrary/ 图1 ...
- VS2017 配置glfw3
直接下载源码使用VS进行编译. 1. 源码下载地址http://www.glfw.org/download.html, 点击Source Package 2. 打开cmake-3.12.1-win32 ...
- VS2017 配置ImageMagick
以下配置仅供参考,我配置完了怎样都用不了... 直接下载源码使用VS进行编译. 源码下载地址:http://imagemagick.org/script/install-source.php#wind ...
- VS2017 配置freeglut3.0.0
配置freeglut: 1. 先下载cmake和freeglut3.0.0文件,并使用cmake编译freeglut,再使用vs2017生成解决方案,详细步骤见https://blog.csdn.ne ...
- 在windows10下vs2017配置opencv4.0.0
第一次配置时,有些.dll文件出错,所以用重新下载opencv配置了一遍,终于可以了,喜极而泣! 一.下载OpenCV4.0 直接到官网https://opencv.org/下载 然后在下个页面选择 ...
- opencv3.4.1和vs2017配置
官网下载opencv,双击之后会将文件提取出来,提取出来的文件放在一个合适的位置(选个好地方,不要乱改,环境的配置依赖于这个目录),我放在了D:\program下 配置环境变量: 右键此电脑--> ...
随机推荐
- CentOS7 通过systemd 添加开机重启服务
现在越来越多的环境采用 CentOS 7 作为基础配置,特别是 Hadoop生态 如果要测试或部署环境需要启动很多组件(zookeeper.kafka.redis等等),如下内容是在操作系统层实现开机 ...
- @PathVariable不起作用,报错:Cannot resolve @PathVariable ' '
@PathVariable是占位符注解.可以把Url中变量的值传递到方法参数中. 示例如下: @PostMapping("/user/name/{id}") @ResponseBo ...
- 刷题记录:[CISCN 2019 初赛]Love Math
目录 刷题记录:[CISCN 2019 初赛]Love Math 思路一 思路二 总结 刷题记录:[CISCN 2019 初赛]Love Math 题目复现链接:https://buuoj.cn/ch ...
- 【大数据应用技术】作业十一|分布式并行计算MapReduce
本次作业在要求来自:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/3319 1.用自己的话阐明Hadoop平台上HDFS和MapRe ...
- tomcat启动慢的解决办法
SessionIdGeneratorBase.createSecureRandom Creation of SecureRandom instance for session ID generatio ...
- 请简述web开发中的兼容问题
1,浏览器默认的内外边距不一样,所以用通用选择器*设置margin和padding来设置.2,块标签设置浮动后,有设置margin的情况下,在ie6下的margin比别的浏览器大.3,img标签会有默 ...
- 迁移Git项目到Gitlab
假定Gitlab已经安装, 假定要迁移的Git项目目录为 demo 首先在Gitlab里创建一个新的project, 名称为demo (或者其他名称都可以) 然后在现有的Git项目目录下, 进行以下操 ...
- PHP 相关性系数计算
相关系数公式 参考:https://baike.baidu.com/item/相关系数 PHP 实现代码 public static function calc($list) { $cv = []; ...
- [LeetCode] 283. Move Zeroes 移动零
Given an array nums, write a function to move all 0's to the end of it while maintaining the relativ ...
- 【VS开发】#pragma pack(push,1)与#pragma pack(1)的区别
这是给编译器用的参数设置,有关结构体字节对齐方式设置, #pragma pack是指定数据在内存中的对齐方式. #pragma pack (n) 作用:C编译器将按照n个字节对 ...