boost b2/bjam 参数说明

2023-05-16

b2/bjam 参数说明:

b2 命令的功能强大,用起来也比较复杂,因此在使用之前,最好先查看一下该命令的帮助:

b2.exe --help

以下是一些比较重要的参数说明:

  • stage/install:

    stage 表示只生成库(dll 和 lib),install 还会生成包含头文件的 include 目录。推荐使用 stage,因为 install 生成的 include 目录实际就是源码包下的 boost 目录,需要 include 的时候可以直接使用,不需要再次生成,这样可以节省大量的编译时间。

  • toolset:

    指定编译器,可选的如 borland、gcc、msvc-14.0(VS2015)等。如果不指定,会自动搜索本地可用的编译器(可查看 ./project-config.jam 文件以确认)。

  • without/with:

    选择不编译/编译哪些库(类似于黑名单/白名单)。--with-python 的含义是仅编译 python,其他的都不编译。反过来,如果用 --without-python,意思就是除了 python, 其他的都编译。with/without 参数可以多次出现,以限定多个库。如果不设置 with/without 参数,默认全部编译,可能需要几个小时的时间!

    需要注意,编译 Boost.python 需要确保本地安装了 Python,并且 python 命令已加入环境变量。

    要查看 Boost 包含的所有库,可使用以下命令:

    b2.exe --show-libraries
    
  • stagedir/prefix:

    stage 时使用 stagedir,install 时使用 prefix,表示编译生成文件的路径。推荐给不同的编译环境指定不同的目录,如 Visual Studio 2015 的 x86 应用对应的是 bin/lib32-msvc-14.0,x64 应用对应的是 bin/lib64-msvc-14.0。如果都生成到一个目录下,将没有任何益处,徒增管理难度。如果使用了 install 参数,那么还将在上述指定的目录下生成 include 目录,用于保存头文件。

  • build-dir:

    编译生成的中间文件的路径,默认是 Boost 根目录下的 bin.v2 目录,一般无需设置。

  • link:

    指定生成动态链接库还是静态链接库,取值为 static|shared。生成静态链接库使用 static,生成动态链接库需使用 shared。如不指定,默认使用 static。静态库的缺点是占用空间比较大,优点是程序发布的时候无需附带 Boost 库的 dll,比较整洁。推荐使用静态库的方式编译 Boost.python,这样发布程序的时候就不用 Boost 的 dll 了,并且也多占用不了太多空间。

  • runtime-link:

    指定运行时是动态还是静态链接其他库。同样有 shared 和 static 两种方式。如果不指定,默认是 shared,一般无需设置。

  • threading:

    要编译的库是单线程还是多线程,可取值 single|multi。如果不指定,默认是 multi,一般无需设置。

  • variant

    debug|release,编译 debug 版本还是 release 版本。一般与最终发布的程序是 debug 还是 release 版相对应。如果不指定,默认两个都编译,一般无需设置。

  • address-model

    编译成 32 位版本还是 64 位版本,可取值 32|64。如果不指定,默认两个版本都编译。如果是编译 Boost.python,该参数就要与本地安装的 Python 位数相对应,否则编译会出错,因此最好设置一下。

Boost 静态库/动态库的命名规则

以 Boost.python 为例,如果编译的是静态库(link=static),将会生成单个 .lib 文件:

libboost_python36-vc140-mt-gd-x32-1_68.lib

而如果编译的是动态库(link=shared),将会生成两个文件(.lib.dll):

boost_python36-vc140-mt-gd-x32-1_68.lib
boost_python36-vc140-mt-gd-x32-1_68.dll

动态库虽然也生成 .lib 文件,但它与静态库的 .lib 文件差别很大。动态库的 .lib 更像是对 .dll 的声明,二者的关系类似于 .h.cpp 的关系。因此,动态库中的 .lib 文件要比静态库的 .lib 文件小得多。

下面以静态库的命名规则为例进行分析:

libboost_python36-vc140-mt-sgd-x32-1_68.lib
| ||   | |      | |   | || ||| | | |  |
 -  ---   ------   ---  -- - -  -   --
 1   2       3      4    5 6 7  8    9
  1. 静态库以 lib 开头,动态库开头没有 lib
  2. 所有的库都含有 boost 前缀。
  3. Boost 库名称,本例中为 python36
  4. 编译器名称及其版本,vc140 指的是 msvc-14.0,对应 Visual Studio 2015。
  5. mt 代表 threading=multi,没有则代表 threading=single
  6. s 代表 runtime-link=static,没有则代表 runtime-link=shared
  7. gd 代表 debug 版本,没有则代表 release 版本。
  8. 目标位数,x32 代表 32 位,x64 代表 64 位。
  9. Boost 库的版本号,1_68 代表 Boost 1.68 版本。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

boost b2/bjam 参数说明 的相关文章

  • pip安装第三方库全攻略:普通安装、安装whl后缀文件、使用国内镜像安装

    简介 xff1a pip 是 Python 的包安装程序 其实 xff0c pip 就是 Python 标准库 xff08 The Python Standard Library xff09 中的一个包 xff0c 只是这个包比较特殊 xf
  • Python:处理cv2模块putText中文无法识别问题

    简介 xff1a 在cv2中 xff0c 目前putText函数中文是无法直接使用的 xff0c 需要进行一点的转换 解决办法为通过PIL模块重新封装一个函数 xff0c 直接调用 如图 xff1a 通过PIL模块改造 xff1a new
  • VLC播放电视直播rtmp流地址

    简介 xff1a RTMP是Real Time Messaging Protocol xff08 实时消息传输协议 xff09 的首字母缩写 该协议基于TCP xff0c 是一个协议族 xff0c 包括RTMP基本协议及RTMPT RTMP
  • Python:global的使用

    简介 xff1a 1 global是Python中的全局变量关键字 2 全局变量是编程术语中的一种 xff0c 源自于变量之分 3 变量分为局部与全局 xff0c 局部变量又可称之为内部变量 4 由某对象或某个函数所创建的变量通常都是局部变
  • Python:opencv画点、圆、线、多边形、矩形

    简介 xff1a 机器学习视觉方向一般都需要在图像中添加标注框 xff0c 标注框有着很大的用处 xff0c 特别是对图像中某些需要关注的特征起到圈定的效果 xff0c 方便对特征选择进行处理 相关攻略 xff1a 机器学习 xff1a 基
  • adb重启或关机手机命令

    简介 xff1a 在某些特殊场景中 xff0c 例如手机真机不在身边 xff0c 但已通过adb进行连接 xff0c 可以使用命令进行远程关机或者重启 相关攻略 xff1a adb xff1a 常用命令 adb xff1a win10系统下
  • docker:更换镜像源

    简介 xff1a 因为国内的网络访问问题 xff0c 为加快拉取镜像速度 xff0c 建议设置docker国内镜像源 相关攻略 xff1a win10 xff1a 安装docker和测试安装redis centos7 6 xff1a 安装d
  • 七大顶级Linux桌面比较

    1七大顶级Linux桌面 xff1a Unity 对于开源Linux平台来说 xff0c 如何选择就是首要解决的问题 通常Linux发行版都有默认的桌面成为你的首选 xff0c 但目前可供选择的桌面环境种类繁多 特别是Ubuntu系统一个平
  • Linux:安装go环境

    简介 xff1a Go xff08 又称 Golang xff09 是 Google 的 Robert Griesemer xff0c Rob Pike 及 Ken Thompson 开发的一种静态强类型 编译型语言 Go 语言语法与 C
  • docker应用:搭建私有云盘

    简介 xff1a NextCloud是一个开源的云存储解决方案 xff0c 可以在自己的服务器上搭建个人云存储系统 它提供了与市面上主流云存储服务 xff08 如Dropbox Google Drive xff09 相似的功能 xff0c
  • Flask+A-Frame:交互式全景图展示网站

    简介 xff1a 通过结合 Flask 轻量级 Web 框架与 A Frame 3D 和 VR 技术 xff0c 实现了一个可交互的全景图展示功能 xff0c 用户可以在浏览器中自由观看 旋转和缩放全景图片 项目的核心是使用 Flask 搭
  • OpenCV合成全景图

    简介 xff1a OpenCV 利用特征提取 特征匹配 齐次估计 图像配准和图像融合等技术 xff0c 将一系列图像合成为全景图 OpenCV 和 Pillow 是两个功能强大的 Python 图像处理库 xff0c 但它们在处理全景图拼接
  • BDD行为驱动开发+Python案例解析

    简介 xff1a BDD xff08 Behavior Driven Development xff0c 行为驱动开发 xff09 是一种敏捷软件开发方法 xff0c 它强调软件应该按照预期的行为来开发 BDD的核心理念是使用自然语言编写的
  • 操作系统迭代、Debian安装教程

    前言 最近在考虑公司生产环境操作系统的迭代问题 目前 xff0c 公司业务主要跑在CentOS7和8上面 xff0c 由于CentOS早已停止了7和8的支持 xff0c 新版的CentOS Stream也从RHEL的下游变成了上游 xff0
  • Debian修改DNS

    原文链接 Debian的DNS文件默认为 etc resolv conf 查看当前的DNS cat etc resolv conf 下图中画出的就是当前系统的DNS 如果想修改DNS的话 xff0c 可以直接vim 来修改文件 xff0c
  • 配置JupyterLab远程密码访问

    文章目录 部署环境配置步骤启动和连接访问启动连接访问 有些时候因为某些原因 xff08 如本地机器资源不足 数据不能离网等 xff09 xff0c 需要使用本地电脑连接远程服务器进行开发工作 xff0c 在这里记录下如何在远程Linux上配
  • linux查看 jre 安装目录

    近期对接平安银行项目 xff0c 要求放国密 jar包到jre目录 xff0c 网上也找了一些命令 xff0c 下面这个亲测有用 xff0c 特此记录一下 xff0c 我的系统版本是3 10 0 693 el7 x86 64 步骤 1 使用
  • Python选择网卡发包及接收数据包

    当一台计算机上有多个网卡时 xff0c 需要选择对应IP地址的网卡进行发送数据包或者接受数据包 1 选择网卡发包 xff08 应用scapy xff09 xff1a plface 61 conf route route 34 34 0 为对
  • php 使用 Excel/reader.php, 导入excel到数据库 ,解决The file is not readable。。

    今天小伙伴上传excel到服务器 并导入到数据库中 xff0c 可是文件一直出现 The file is not readable 是哪里的代码抛出的异常呢 xff1f 是Spreadsheet Excel Reader类里面 其中抛出异常
  • “The Language Support for Java server crashed“ 问题解决方案

    The Language Support for Java server crashed 问题解决方案 环境 xff1a Windowsvs code 1 356 14日最新发布的VSCodeJavaInstaller online win

随机推荐

  • (循环读取网易云缓存文件转mp3)

    循环读取网易云缓存文件转mp3 import java io DataInputStream import java io DataOutputStream import java io File import java io FileIn
  • 洛谷P4180 [BJWC2010]严格次小生成树

    传送门 之前写过一次 xff0c 但是理解不深刻 xff0c 复习之后有了更加细节的一些理解 好了进入正题 首先 xff0c 我们需要知道次小生成树一定是在最小生成树的邻集中 xff0c 即次小生成树与最小生成树只会有一条边的差别 所以我们
  • MarkDown学习笔记

    MarkDown学习笔记 目录 MarkDown学习笔记 1 标题2 段落3 文字3 1斜体3 2加粗3 3斜体 43 加粗3 4删除线3 5下划线3 6字体背景 4 分隔线5 扩展语法的说明6 高亮 xff08 需要勾选扩展语法 xff0
  • 格式化标准输出函数printf()与格式化标准输入函数scanf()

    printf 函数与scanf 函数 文章目录 printf 函数与scanf 函数格式化标准输出函数 printf 相关函数 xff1a 返回值参数执行顺序打印较长字符串格式控制符 xff1a 输出缓冲区printf 的标志转义字符类型修
  • 数据在内存中的存储

    数据在内存中的存储 文章目录 数据在内存中的存储计算机中的数据数据类型类型的基本归类整型在内存中的存储原码 反码 补码大小端介绍浮点型在内存中的存储二进制与十进制的转换 计算机要处理的信息是多种多样的 xff0c 如数字 文字 符号 图形
  • 特殊函数--变参函数及相关宏

    特殊函数 变参函数 定义的函数在使用时传入的参数是不定量不定类型 变参函数 include lt stdarg h gt 例子 xff1a printf 34 abc d def c g n 34 num ch xff09 其中 34 ab
  • 进程的内存分布

    Linux 内存分布 C进程的内存布局 Linux和windows都是支持多任务多用户的高级操作系统 进程 xff08 process xff09 xff1a 一段程序的执行过程 对于一个C程序 xff0c 在运行过程中系统对这个进程的内存
  • C语言实现24点游戏算法

    纸牌游戏24点 xff0c 输入4个1到13之间的值 xff0c 通过加减乘除判断是否可以得到24 span class token macro property span class token directive hash span s
  • C语言实现排序与组合

    span class token macro property span class token directive hash span span class token directive keyword include span spa
  • java.net.SocketException: recvfrom failed: ECONNRESET (Connection reset by peer)

    有一天我的androidHttpURLConnection 报这种错 你看 to reduce latency this class may reuse the same underlying Socket for 懂了吧 xff0c 我们
  • C语言解决四人/多人过桥问题

    参加笔试的时候遇到一道经典的算法题 xff0c 四人过桥问题 当时没写出来 x1f605 四人过桥问题 xff1a 在一个黑夜里 xff0c 有四个人需要过桥 xff0c 每次只能通过两人 xff0c 其中一人必须拿着手电筒 xff1b 但
  • C语言计算某一天是星期几

    span class token comment 1970年1月1日星期四 span span class token macro property span class token directive hash span span cla
  • 七牛云存储,上传一直超时

    今天在使用七牛云存储上传的时候 xff0c 遇到一个奇葩的问题 xff0c 就是一直上传超时 但是直接连接up qiniu com又是能够连接到的 而且iOS的有问题 xff0c android的没有问题 关于七牛云存储 xff1a htt
  • OSI七层网络参考模型详解

    1 什么是 OSI 模型 OSI 描述了计算机系统之间进行网络通信的模型 它是第一个网络通信标准模型 xff0c 在 1980 年代初期被所有主要计算机和电信公司采用 现代 Internet 不是基于 OSI xff0c 而是基于更简单的
  • Python制作简易OCR文字识别系统

    前不久看了一篇 如何使用Python检测和识别车牌 xff1f 用OpenCV对输入图像进行预处理 xff0c 用imutils将原始输入图像裁剪成所需的大小 xff0c 用pytesseract将提取车牌字符转换成字符串 车牌识别 但经实
  • PageHelper和Mybatis-plus分页的使用

    PageHelper和Mybatis plus分页的使用 一 PageHelper 准备sql span class token keyword CREATE span span class token keyword TABLE span
  • [RTC]系统时间NTP和RTC同步,Debian的时区配置

    转自 xff1a linux修改系统时间和linux查看时区 修改时区的方法 jiu 博客园 Debian的时区配置 一 修改时区 1 查看当前时区 命令 xff1a 34 date R 34 2 修改设置Linux服务器时区 方法 A 命
  • Autonomous Driving in Adverse Weather Conditions: A Survey - 恶劣天气条件下的自动驾驶:一项调查 (arXiv 2021)

    Autonomous Driving in Adverse Weather Conditions A Survey 恶劣天气条件下的自动驾驶 xff1a 一项调查 xff08 arXiv 2021 xff09 摘要1 引言2 自动驾驶汽车概
  • C#关于枚举类型Enum的用法详解,很细

    一 关键字enum的定义 enum是C语言中的一个关键字 xff0c enum叫枚举数据类型 xff0c 枚举数据类型描述的是一组整型值的集合 xff08 这句话其实不太妥当 xff09 xff0c 枚举型是预处理指令 define的替代
  • boost b2/bjam 参数说明

    b2 bjam 参数说明 xff1a b2 命令的功能强大 xff0c 用起来也比较复杂 xff0c 因此在使用之前 xff0c 最好先查看一下该命令的帮助 xff1a b2 exe help 以下是一些比较重要的参数说明 xff1a st