Windows下编译boost库

news2024/10/1 15:14:39

准备工作

  • 下载boost库。官方下载地址:为了避免官方版本下载较慢,可以在这里下载版本为1.78
  • 安装Virtual Studio,测试过2013以上的版本都可以编译最新版本的boost库,2013之前的版本没有做过测试。

启动编译

启动vistual studio的命令环境【参考如下】

在这里插入图片描述
在这里插入图片描述

在命令提示符下切换boost源码路径为当前路径

在命令提示符下,执行boost源码中的bootstrap.bat

在这里插入图片描述

执行效果如下:
在这里插入图片描述

执行后,在boost源码目录下生成b2.exe,接下来使用b2.exe执行编译工作

b2具体编译参数如下表

参数名可选参数
variant决定编译什么版本,debug版本生成的lib库命名中含有d标识,没有标识则为release版本
link链接方式,决定生成动态库还是静态库
threading决定使用单线程模式还是多线程模式
address-model决定编译32位还是64位版本
toolset决定使用的vs版本,前提是系统中已经安装对应编译器版本的工具集
include附加头文件的包含路径
define附加宏定义
runtime-link标准库的链接方式,static:静态链接运行时库,项目指定MT编译使用。shared:动态链接运行时库,项目指定MD编译时使用
–with-指定只编译某个库,如–with-regex只编译ragex库
–show-libraries显示所有需要编译库的名称,配合–with进行编译过滤

如:
b2 runtime-link=static link=static threading=multi(生成静态库,该静态库静态链接C运行库)
生成的文件:
libboost_thread-vc142-mt-sgd-x64-1_74.lib
libboost_thread-vc142-mt-s-x64-1_74.lib
lib库命名中,s代表静态链接运行时库(MT),gd代表debug版本。

b2 runtime-link=shared link=static threading=multi(生成静态库,该静态库动态链接C运行库)
生成的文件:
libboost_thread-vc142-mt-gd-x64-1_74.lib
libboost_thread-vc142-mt-x64-1_74.lib
可见,动态链接运行时库,lib库命名中不包含s字符

b2 runtime-link=shared link=shared threading=multi(生成动态库,该动态库动态链接C运行库)
生成的文件:
boost_thread-vc142-mt-gd-x64-1_74.lib
boost_thread-vc142-mt-x64-1_74.lib
boost_thread-vc142-mt-gd-x64-1_74.dll
boost_thread-vc142-mt-x64-1_74.dll

lib库命名规则的含义

  • 静态库lib以lib开头,而动态编译的lib库不以lib开头,需要搭配dll使用。如libboost_threadxxxx.lib为静态编译,boost_threadxxx.lib为动态编译
  • vc142表示编译器名称及版本,vc142对应virtual studio 2019
  • 命名中包含mt代表threading=multi,没有mt代表threading=single
  • 由gd代表debug版本,没有则代表release版本
  • x64表示64位版本,同理x32则代表32位版本
  • s代表C运行时的链接方式为静态链接,等同与vs的MT参数,不带s则表示为动态链接版本,等同vs的MD
  • 1_74代表Boost 1.74版本

toolset msvc对应关系

编译器版本msvctoolset
vs2010v100msvc-10.0
vs2013v120msvc-12.0
vs2015v140msvc-14.0
vs2017v141msvc-14.1
vs2019v142msvc-14.2
vs2022v143msvc-14.3

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/919568.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

云南森林火灾vr消防模拟安全演练系统训练消防员火灾和事故的适应和应对能力

据统计,每一场破坏性地震发生后,会引发次生的灾害,而火灾是其中之一。导致火灾的原因,推测是地震时使供电线路短路,引燃易燃物,火灾就随即发生。所以,在日常生活中,定期的消防演练还是非常必要的, VR消防,是VR公司深圳华锐视点利用VR虚拟现实技术,将VR和…

Unity血条制作

一、使用UGUI制作血条 我一般使用image制作血条,当然,也可以使用滑动组件Slider。image的具体操作步骤如下 普通血条 1、在Hierarchy面板中,创建两个image组件,将其中一个设置为另外一个的子节点 2、在Inspector面板中&#…

F5负载均衡器参与的Kubernetes架构选项介绍

F5负载均衡器在业内有着很高的知名度,因为它不仅是F5的代表作,负载均衡(Load Balance)这一词汇正是由F5发明并引入国内的。当前,F5的能力不断拓展,从早期聚焦F5负载均衡器到现在的分布式云应用架构&#xf…

Android 系统桌面 App —— Launcher 开发

Android 系统桌面 App —— Launcher 开发 Launcher简介 Launcher就是Android系统的桌面,俗称“HomeScreen”也就是我们开机后看到的第一个App。launcher其实就是一个app,它的作用是显示和管理手机上其他App。目前市场上有很多第三方的launcher应用&am…

GAN | 论文精读 Generative Adversarial Nets

提出一个GAN (Generative Adversarial Nets) 1 方法 (1)生成模型G(Generative),是用来得到分布的,在统计学眼里,整个世界是通过采样不同的分布得到的,生成…

2023 百度翻译 爬虫 js逆向 代码

js代码&#xff1a; const jsdom require("jsdom"); const {JSDOM} jsdom; const dom new JSDOM(<!DOCTYPE html><p>Hello world</p>); window dom.window; document window.document; XMLHttpRequest window.XMLHttpRequest;function n(t,…

webpack5(一)

什么是webpack webpack是一个静态资源打包工具&#xff0c;它会以一个或者多个文件作为打包的入口&#xff0c;将整个项目的所有文件编译组合成一个或多个文件输出出去。输出的文件就是变异好的文件&#xff0c;可以在浏览器端运行。一般将 webpack 输出的文件称为 bandle 。 …

HTTP与RPC的取舍

HTTP与RPC的取舍 HTTP和RPC都是常用的网络通信协议&#xff0c;它们各有优劣。选择何种协议&#xff0c;主要取决于应用的需求和场景。 HTTP和RPC都有各自的优点和缺点&#xff0c;首先我们对两种协议进行一个总结。 HTTP协议图 HTTP的优点&#xff1a; 广泛的支持&#xff1…

QT学习笔记-开发环境编译Qt MySql数据库驱动与交叉编译Qt MySql数据库驱动

QT学习笔记-开发环境编译Qt MySql数据库驱动与交叉编译Qt MySql数据库驱动 0、背景1、基本环境2、开发环境编译Qt MySql数据库驱动2.1 依赖说明2.2 MySQL驱动编译过程 3、交叉编译Qt MySql数据库驱动3.1 依赖说明3.3.1 如何在交叉编译服务器上找到mysql.h及相关头文件3.3.2 如果…

SpringCloud学习笔记(四)_ZooKeeper注册中心

基于Spring Cloud实现服务的发布与调用。而在18年7月份&#xff0c;Eureka2.0宣布停更了&#xff0c;将不再进行开发&#xff0c;所以对于公司技术选型来说&#xff0c;可能会换用其他方案做注册中心。本章学习便是使用ZooKeeper作为注册中心。 本章使用的zookeeper版本是 3.6…

数学建模(五)非线性规划

课程推荐&#xff1a; 13 非线性规划算法在数学建模中的应用与编程实现_哔哩哔哩_bilibili 一、非线性规划模型 如果目标函数或约束条件中包含非线性函数&#xff0c;就称这种规划问题为非线性规划问题。一般说来&#xff0c;解非线性规划要比解线性规划问题困难得多。而且&am…

iMX6ULL 库移植 | Libgpiod 库的交叉编译及使用指南(linux)

GPIO口的操作&#xff0c;是很常见的功能。传统的GPIO sysfs接口已被弃用。自Linux 4.8起&#xff0c;内核提供了全新的操作gpio的方式libgpiod&#xff08;C library and tools for interacting with the linux GPIO character device&#xff09;&#xff0c;当然也更高效&am…

YashanDB获强制性国家标准GB 18030-2022最高级别认证

近日&#xff0c;深圳计算科学研究院崖山数据库系统YashanDB V23正式完成了强制性国家标准GB 18030-2022《信息技术 中文编码字符集》适配检测&#xff0c;通过该标准的最高实现级别&#xff08;级别3&#xff09;认证&#xff0c;成为数据库领域首批获得该证书的产品&#xff…

css-选择器、常见样式、标签分类

CSS CSS简介 层叠样式表(英文全称&#xff1a;Cascading Style Sheets)是一种用来表现HTML&#xff08;标准通用标记语言的一个应用&#xff09;或XML&#xff08;标准通用标记语言的一个子集&#xff09;等文件样式的计算机语言。CSS不仅可以静态地修饰网页&#xff0c;还可…

GO-vscode远程开发和调试

本文内容主要包括&#xff1a; 概述&#xff1a; 主要就是把代码放到服务器上然后远程去开发和调试 工具&#xff1a; vscode 远程端&#xff1a; linux 一.安装远程插件 vscode安装Remote - SSH&#xff0c;Remote Explorer&#xff0c;Remote Development&#xff0c…

Eclipse(STS):pom.xml 报错:Multiple markers at this line

pom.xml 报错&#xff1a;Multiple markers at this line STS中&#xff0c;项目能够正常运行&#xff0c;但是 pom.xml 报错&#xff1a;Multiple markers at this line 项目本身没有任何修改&#xff0c;之前不报错的&#xff0c;突然报错了。 Multiple markers at this li…

小程序运营方式有哪些?如何构建小程序运营框架?

​如今&#xff0c;每个企业基本都做过至少一个小程序&#xff0c;但由于小程序本身不具备流量、也很少有自然流量&#xff0c;因此并不是每个企业都懂如何运营小程序。想了解小程序运营方式方法有哪些&#xff1f; 在正式运营小程序前&#xff0c;了解小程序的功能与企业实际经…

36款影音娱乐-音乐、电台、直播类APP评测体验报告

为方便开发者更好地衡量APP在同类产品中的表现和竞争力&#xff0c;有针对性地进行产品优化&#xff0c;软件绿色联盟策划了垂类APP评测体验专题&#xff0c;目前已发布了天气、小说、教育和视频类APP评测体验报告。本期将对影音娱乐类中的音乐、电台、直播类APP围绕绿标五大标…

达标率81.14%,软件绿色联盟7月绿标评测报告发布

导 读 为帮助应用开发者提升APP质量&#xff0c;推动用户体验升级&#xff0c;软件绿色联盟持续基于《软件绿色联盟应用体验标准》&#xff0c;月度对国内主流TOP1000共计18类应用&#xff0c;从兼容性、稳定性、功耗、性能、安全五方面进行绿标评测&#xff0c;解读不同分类应…

Linux和其他类Unix系统的GNU coreutils 知多少

GNU coreutils是GNU项目的一部分&#xff0c;它是一组基本的命令行工具集&#xff0c;用于操作和管理Linux和其他类Unix系统中的文件和数据流。这些工具被广泛用于终端和脚本中&#xff0c;提供了许多常用的功能和实用程序。Linux和其他类Unix系统的GNU coreutils 知多少&#…