C++ Boost库
《C++ Boost库》
1. Preface
cxmsc
2. Boost库编译
- 解压boost源码压缩目录
- Windows平台下,打开cmd,运行脚本bootstrap.bat脚本
- 生成b2.exe文件
boost需要通b2.exe来自动编译源码;在编译之前,需要指定一些列参数:
首先可通过--help命令来查看相关的参数
# 展示boost里所有的库
b2.exe --show-libraries
参数含义:
- --prefix/--stagedir
分别对应install和stage模式下的安装目录 - install/stage
stage表示只生成库(lib和dll),install会额外生成包含头文件的include目录。这个include目录实际就是从boost源码解压后的include目录拷贝过去的; - toolset 指定编译器
可选项包含:(borland, gcc, msvc(VC6), msvc-10.0(vs2010), msvc-12.0(vs2013), msvc-14.0(vs2015)) - with/without
选择编译或者不编译哪些库,可以根据需要进行选择,默认为全部编译,可通过b2.exe --show-libraries
来查看boost下所有的库 - build_dir
中间问价的生成路径,如果无特殊需求,可不设置,默认路径为boost源码根目录下的bin.v2目录下 - link
选择生成动态链接库/静态链接库,可选值 static / shared - runtime-link
指定boost编译时是动态/静态链接c++运行时库,可选值static / shared - threading
是否开启多线程编译, 可选值 single / multi - debug / releae
指定编译的产物类型为debug或者release
# debug和release可同时编译
b2.exe install --prefix=D:\software\boost_1_82_0 toolset=gcc link=shared runtime-link=shared threading=multi --with-thread release debug
为了便于编译Boost库,在此列出VS版本,GCC版本以及C++版本之间的关系:
目前的C语言标准有:C89(ANSI C), C90, C99(ISO C), C11(C1x)
目前的C++标准有:C++98, C++03(对98做了小幅的修改),C++11(全面进化),C++17
不同C++标准对应的编译器支持情况可参考:https://en.cppreference.com/w/cpp/compiler_support
语言标准 | 编译器支持情况 | 备注 |
---|---|---|
C++11 | gcc4.8.1及以上可以完全支持,gcc4.3部分支持, gcc4.3以下版本不支持 |
|
C++14 | gcc5可以完全支持,gcc4部分支持,gcc3及以下版本 不支持 |
|
c++17 | gcc7完全支持,gcc6以及gcc5部分支持(gcc6比gcc5支持更好), gcc4以及以下的版本不支持 |
备注:gcc高版本向下兼容低版本
VC(Microsoft Visual C++)是微软推出的一个集成c,c++的开发环境,97年推出的Microsoft Visual C++ 6.0是一个非常经典的版本。在目前使用中,建议最好使用VS2008以上版本中的VC
VC版本与Visual Studio版本的对应关系如下所示:
Visual Studio版本 | VC版本 | 备注 |
---|---|---|
Visual Studio 6 | VC6 | |
Visual Studio 2003 | VC7 | |
Visual Studio 2005 | VC8 | |
Visual Studio 2008 | VC9 | |
Visual Studio 2010 | VC10 | |
Visual Studio 2012 | VC11 | |
Visual Studio 2013 | VC12 | |
Visual Studio 2015 | VC14 | |
Visual Studio 2017 | VC15 |
语言类型与匹配的Visual Studio版本
语言 | 支持的VS版本 | 备注 |
---|---|---|
C++11 | vs2015及以上可以完全支持。vs2013基本支持,vs2012部分支持, vs2010及以下版本不支持。 |
|
C++14 | vs2017就可以完全支持,vs2015基本支持,vs2013部分支持。 | |
C++17 | vs2017基本支持,vs2015部分支持。 |
参考博客: https://blog.csdn.net/u010977122/article/details/100708274