要编译的 Boost 版本:1.82.0

假设 Boost 的根目录为 ${boost_root}$

如果不想编译可以使用博主编译后的Boost:https://pan.baidu.com/s/1s2fLoEgJX3540rk_WIkNOQ?pwd=yyds

一、关于 VC14.2 编译

  1. https://www.boost.org/ 下载 boost 源码 boost_1_82_0.zip解压。

  2. 使用 x86_x64 Cross Tools Command Prompt for VS 2019 切换操作目录至 boost 下 (避免PC中多个VS版本的影响)

  3. 基于 VS2019 的 CMD 运行 bootstrap.bat 会自动使用 VC14.2 生成 b2.exe (新版本不会生成 bjam.exe)

    个人建议:首先去配置一下 cl 命令的环境变量,避免提示以下问题:

    'cl' 不是内部或外部命令,也不是可运行的程序。

    解决这个问题的方法是将 cl 命令的位置添加到系统的环境变量中,我的安装路径在 D 盘中,则需要将以下内容添加到 Path 环境变量中:

    D:\Soft\Microsoft\VS2019\VC\Tools\MSVC\14.28.29910\bin\Hostx64\x64

    环境变量修改之后必须重启才能生效。

    添加完以上环境变量之后,再次运行 .\bootstrap.bat ,如果出现以下错误:

    fatal error C1034: ctype.h: 不包括路径集。

    则说明是 Windows 环境变量没有配置或没配置好。此时我们需要在系统的环境变量里面新建两个环境变量,它们的变量名和变量值分别为:

    # 仅供参考
    # 第一个环境变量
    变量名:INCLUDE
    变量值:C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.26.28801\include
    C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared
    C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt
    C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um
    C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\winrt # 第二个环境变量
    变量名:LIB
    变量值:C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.26.28801\lib\x64
    C:\Program Files (x86)\Windows Kits\10\Lib\10.0.18362.0\ucrt\x64
    C:\Program Files (x86)\Windows Kits\10\Lib\10.0.18362.0\um\x64

    添加完之后,重启,使环境变量生效。

    然后再次运行 .\bootstrap.bat ,正常情况下应该输出 b2.exe 的信息:

    然后接下来要运行 .\b2 命令来进行编译,编译命令如下:

    b2 install --prefix=D:\Soft\Language\Boost-vc142 --build-type=complete --toolset=msvc-14.2 threading=multi address-model=32 address-model=64 debug release

    关于上述命令中各参数的详细解释,请自行查阅。

    但是执行上述命令之后可能会报如下错误:

    error: msvc initialization: parameter 'version' inconsistent
    error: no value was specified in earlier initialization
    error: an explicit value is specified now

    解决方法是修改 ${boost_root} 目录下的 project-config.jam 文件,如果用的是 VS2019,则可以将里面的内容修改成:

    import option ; 
    
    using msvc : 14.2 : "D:\Soft\Microsoft\VS2019\VC\Tools\MSVC\14.28.29910\bin\Hostx64\x64\cl.exe"; 
    
    option.set keep-going : false ;

    然后再次运行 .\b2 命令,如果没有什么什么问题应该就可以正常编译了。

    编译之后,会生成一个 include 文件夹和一个 lib 文件夹。

    至此,编译过程结束。


二、CMake 配置过程

个人建议,使用之前可以先配置一下 Boost include 和 lib 的环境变量

BOOST_INCLUDEDIR:D:\Soft\Language\Boost-vc142\include\boost-1_82

BOOST_LIBRARYDIR:D:\Soft\Language\Boost-vc142\lib

编译用的CMakeLists.txt,有两种写法,这里推荐第一种

link_directories一定要放在add_executable前面,

target_link_libraries一定要放在add_executable后面

不然会发生 cmake 无法打开 libboost_xx_xx-vc142-mt-gd-x32-1_xx.lib 等类似问题

cmake_minimum_required(VERSION 3.1...3.20)

# 若在 Clion 中的工具链使用 MVSC 报错则注释此行
add_compile_options("/std:c++17") project(Boost) # 避免 cmake 无法找到 Boost
set (BOOST_ROOT "D:/Soft/Language/Boost-vc142")
#Boost
set(Boost_DEBUG ON)
set(Boost_USE_STATIC_LIBS ON)
find_package(Boost REQUIRED COMPONENTS filesystem)
MESSAGE( STATUS "Boost_INCLUDE_DIRS = ${Boost_INCLUDE_DIRS}.")
MESSAGE( STATUS "Boost_LIBRARY_DIRS = ${Boost_LIBRARY_DIRS}.")
MESSAGE( STATUS "Boost_LIBRARIES = ${Boost_LIBRARIES}.")
MESSAGE( STATUS "Boost_LIB_VERSION = ${Boost_LIB_VERSION}.")
# cmake 注意事项
link_directories(${BOOST_ROOT}/lib)
include_directories(${Boost_INCLUDE_DIRS}) FILE(GLOB CPP_FILE0 ${PROJECT_SOURCE_DIR}/Boost-test/*.cpp)
add_executable(Boost_test ${CPP_FILE0})
target_link_libraries(Boost_test ${Boost_LIBRARIES})

第二种:

cmake_minimum_required(VERSION 3.1...3.20)

# 若在 Clion 中的工具链使用 MVSC 报错则注释此行
add_compile_options("/std:c++17") project(Boost) #Boost
set(Boost_DEBUG ON)
find_package(Boost REQUIRED)
MESSAGE( STATUS "Boost_INCLUDE_DIRS = ${Boost_INCLUDE_DIRS}.")
MESSAGE( STATUS "Boost_LIBRARY_DIRS = ${Boost_LIBRARY_DIRS}.")
MESSAGE( STATUS "Boost_LIBRARIES = ${Boost_LIBRARIES}.")
MESSAGE( STATUS "Boost_LIB_VERSION = ${Boost_LIB_VERSION}.")
# cmake 注意事项
link_directories(${BOOST_ROOT}/lib)
include_directories(${Boost_INCLUDE_DIRS}) FILE(GLOB CPP_FILE0 ${PROJECT_SOURCE_DIR}/Boost-test/*.cpp)
add_executable(Boost_test ${CPP_FILE0})
target_link_libraries(Boost_test ${Boost_LIBRARY_DIRS}/*.lib)

关于 VS2019 中使用 Boost

简单的在配置属性的 VC 中添加 include 和 lib 的库文件位置即可

参考文章

【Boost】Windows 下个人在配置 Boost 踩到的坑以及解决方案的更多相关文章

  1. windows下基于IIS配置ssl证书遇到的坑

    前几天配置windows下基于IIS配置ssl证书 完全按照步骤执行 绑定https网址后,一直显示:无法访问此网站 检查了443端口,还有防火墙限制,没发现什么 足足困扰了我好几天 后来突然想到前不 ...

  2. boost::VS2017下编译和配置boost库

    环境: win10  vs2017  v141 1.下载  boost_1_70_0.zip. 2.以管理员方式打开 3. bootstrap.bat 4.编译64位库 b2.exe stage -- ...

  3. webpack4.0在Mac下的安装配置及踩到的坑

    一.什么是webpack是一个前端资源加载/打包工具.它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源.它做的事情是,分析你的项目结构,找到JavaScript模块以 ...

  4. windows下用vs2008和boost结合编译程序

      原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://co63oc.blog.51cto.com/904636/504469 win ...

  5. windows下编译和安装boost库

    boost是一个功能强大.构造精巧.跨平台.开源并且完全免费的C++程序库. 获取方式 boost提供源码形式的安装包,可以从boost官方网站下载,目前最新版本是1.59.0. 本机上正好有boos ...

  6. < python音频库:Windows下pydub安装配置、过程出现的问题及常用API >

    < python音频库:Windows下pydub安装配置.过程出现的问题及常用API > 背景 刚从B站上看过倒放挑战之后也想体验下,心血来潮一个晚上完成了基本的实现.其中倒放与播放部分 ...

  7. Windows下python的配置

    Windows下python的配置 希望这是最后一次写关于python的配置博客了,已经被python的安装烦的不行了.一开始我希望安装python.手动配置pip并使用pip安装numpy,然而发现 ...

  8. Windows 下用 gogs 配置局域网 git server

    大道曙光 Windows 下用 gogs 配置局域网 git server 最近要用 C# 开发一个新的项目,所以需要在 Windows 局域网环境下构建一个 git server. 在 Window ...

  9. Windows 下如何安装配置Snort视频教程

    Windows 下如何安装配置Snort视频教程: 第一步: http://www.tudou.com/programs/view/UUbIQCng360/ 第二部: http://www.tudou ...

  10. PHP学习之-Mongodb在Windows下安装及配置

    Mongodb在Windows下安装及配置 1.下载 下载地址:http://www.mongodb.org/ 建议下载zip版本. 2.安装 下载windows版本安装就和普通的软件一样,直接下一步 ...

随机推荐

  1. 本地Stackedit Markdown编辑器设置远程访问

    StackEdit是一个受欢迎的Markdown编辑器,在GitHub上拥有20.7k Star!,它支持将Markdown笔记保存到多个仓库,包括Gitee.GitHub和Gitea.此在线笔记工具 ...

  2. C# 泛型编译特性对性能的影响

    C#作为一种强类型语言,具有丰富的泛型支持,允许开发者编写可以应对不同数据类型的通用代码.然而,在泛型编译时,针对结构和类作为泛型参数时,会对性能产生不同的影响. 泛型编译行为 在C#中,泛型编译行为 ...

  3. ClickHouse(16)ClickHouse日志引擎Log详细解析

    日志引擎系列 这些引擎是为了需要写入许多小数据量(少于一百万行)的表的场景而开发的. 这系列的引擎有: StripeLog Log TinyLog 共同属性 引擎: 数据存储在磁盘上. 写入时将数据追 ...

  4. 我的PyCharm为什么在linux下打不开?

    PyCharm打不开解决方案 本文基于Xrdp远程连接桌面环境,Unbutu Linux OS,解决办法仅供参考.应以实际情况为准. 问题产生的原因,Xrdp下GUI绘制依赖于Xrdp的渲染,当Xrd ...

  5. 可视化学习:WebGL的基础使用

    引言 继续复习可视化的学习.WebGL和其他Web端的图形系统存在很大的不同,是OpenGL ES规范在浏览器的实现,它最大的不同就在于它更接近底层,可以由开发者直接操作GPU来实现绘图,性能很好,可 ...

  6. 基于DotNetty实现自动发布 - 自动检测代码变化

    前言 很抱歉没有实现上一篇的目标:一键发布,因为工作量超出了预期,本次只实现了 Git 代码变化检测 已完成的功能 解决方案的项目发现与配置 首次发布需要手动处理 自动检测代码变化并解析出待发布的文件 ...

  7. [ABC261G] Replace

    Problem Statement You are given two strings \(S\) and \(T\) consisting of lowercase English letters. ...

  8. CentOS 8.1成功安装最新Node.js 20教程(含用到的全部命令和截图演示)

    yum换镜像和源 CentOS 已经停止维护的问题.2020 年 12 月 8 号,CentOS 官方宣布了停止维护 CentOS Linux 的计划,并推出了 CentOS Stream 项目,Ce ...

  9. dada的GCD ( jxnu acm新生选拔赛)

    1007 dada的GCD,输入格式描述有误,已修正 dada的GCD Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/327 ...

  10. Blazor入门100天 : 自做一个支持长按事件的按钮组件

    好长时间没继续写这个系列博客了, 不知道大家还记得我吗? 话不多说,直接开撸. 1. 新建 net8 blazor 工程 b19LongPressButton 至于用什么模式大家各取所需, 我创建的是 ...