文档章节

Boost库编译应用

水海云
 水海云
发布于 06/19 10:35
字数 603
阅读 14
收藏 0
点赞 0
评论 0
  • 版本:Boost 1.66.0

Windows库编译

官网指南:直接执行bootstrap.bat处理文件即可,可以我却遇到一堆的问题。

  • 环境:Windows 10 + Visual Studio 2017

Boost编译出来库命名

boost库生成文件命名和编译

BOOST_LIB_PREFIX + BOOST_LIB_NAME + "-" + BOOST_LIB_TOOLSET + "-" + BOOST_LIB_THREAD_OPT + "-" + BOOST_LIB_RT_OPT + "-" + BOOST_LIB_VERSION

这些定义为:

  BOOST_LIB_PREFIX: 静态库为 "lib" (否则无,是用动态链接库)

  BOOST_LIB_NAME: 库的基本名称 ( 比方说 boost_regex).

  BOOST_LIB_TOOLSET: 编译工具集名称 ( 比如:vc6, vc7, bcb5 )

  BOOST_LIB_THREAD_OPT: 多线程为 "-mt" ,否则为空

  BOOST_LIB_RT_OPT: 指示使用的运行库的后缀,

组合下面的一个或者更多字符:

s 静态运行库,指的是静态链接到运行时库(不出现表示动态).

g 调试/诊断 runtime (release if not present).

d 调试版本 (不出现表示 release 版 ).

p STLPort 版本.

注:对 vc 来说,gd 总是一起出现

  BOOST_LIB_VERSION: Boost 版本, Boost 版本 x.y 表示为 x_y形式.

编译命令:

.\b2.exe -j8 --with-filesystem threading=multi link=static runtime-link=shared stage

错误列表

  • cl 命令无法识别:编译器命令不能识别

  • 头文件找不到:

      boost_1_66_0\tools\build\src\engine\jam.h(71): fatal error C1034: ctype.h: no include path set
    

解决方法:通过跟踪bootstrap.bat文件到tools\build\src\engine\build.bat文件,发现如下内容:

ECHO ###
ECHO ### %1
ECHO ###
ECHO ### You can specify the toolset as the argument, i.e.:
ECHO ###     .\build.bat msvc
ECHO ###
ECHO ### Toolsets supported by this script are: borland, como, gcc,
ECHO ###     gcc-nocygwin, intel-win32, metrowerks, mingw, msvc, vc7, vc8,
ECHO ###     vc9, vc10, vc11, vc12, vc14, vc141
ECHO ###
ECHO ### If you have Visual Studio 2017 installed you will need either update
ECHO ### the Visual Studio 2017 installer or run from VS 2017 Command Prompt
ECHO ### as we where unable to detect your toolset installation.
ECHO ###

即要从VS2017的命令行工具中去运行才能找到正确的环境配置。

在菜单Visual Studio 2017目录下找到:x86 Native Tools Command Prompt for VS2017打开,然后切换到Boost目录执行:

call .\bootstrap.bat

将会生成文件:b2.exe bjam.exe两个文件。可以执行如下命令查看说明:

.\b2.exe --help

通过如下命令安装boost:

.\b2.exe link=static runtime-link=static install

默认安装到C:\Boost目录下,大小约1.8GB。

Boost的使用

  1. 库链接问题:带lib前缀的库和不带lib前缀的库

    在编译使用Caffe框架的应用时,遇到如下链接错误:

     无法打开文件“libboost_date_time-vc-141-mt-1_61.lib”
    

    可是在指定的目录下我们有不带lib前缀的库:boost_date_time-vc-141-mt-1_61.lib。

    解决方法是添加Boost的库链接宏: BOOST_ALL_NO_LIB。

© 著作权归作者所有

共有 人打赏支持
水海云
粉丝 50
博文 120
码字总数 101938
作品 0
深圳
程序员
正则表达式 boost regexp的安装

正则表达式 boost regexp的安装 早就听说过这个Boost库的牛B,只是一直没有精力来学习,最近在网上查了查,评论有好有坏,但多一点是好的,不过暂时没有见过有公司使用Boost库来作为公司产品...

香芋
2012/06/08
0
0
正则表达式 boost regexp的安装

正则表达式 boost regexp的安装 早就听说过这个Boost库的牛B,只是一直没有精力来学习,最近在网上查了查,评论有好有坏,但多一点是好的,不过暂时没有见过有公司使用Boost库来作为公司产品...

香芋
2012/06/08
0
0
UBUNTU16.10安装Boost1.6

最近由于编译一个程序用到了C++的boost库,所以便安装了这个库。但是,其中遇到了一些小问题。所以记录下来,以供别人参考。 首先说一下我的环境:Ubuntu 16.10 64bit, gcc version 6.2.0 其...

rose_willow
2016/11/22
79
0
怎样在 VS 2010 中使用 Boost [翻译]

翻译来自 stackoverflow 的讨论 How to use Boost in Visual Studio 2010 译文:怎样在 VS 2010 中使用 Boost [翻译] 作者:KTC 翻译:Breaker 译文: 我说明下在 VS 2010 中编译 Boost 的特...

晨曦之光
2012/05/23
479
0
Linux平台Boost的编译方法

本博客(http://blog.csdn.net/livelylittlefish )贴出作 者(三二一@小鱼)相关研究、学习内容所做的笔记,欢迎广大朋友指正! Linux平台Boost的编译方法 Boost的编译使用的不是已经成为公...

晨曦之光
2012/03/09
300
0
(转)VC2010编译boost

BOOST已经开始支持VC2010,也有人称之为VC10或者MSC16。在这里谷主介绍下BOOST的编译过程,BOOST跨平台做的很棒,所以我们编译起来其实很简单。 1、下载BOOST发行版或SVN代码 2、解压缩并执行...

DEC_LIU
2010/09/01
0
0
在VS2013中使用boost库遇到的问题及解决

最近的项目需要集成一个使用了boost库的开源库。原本应该是比较简单的工作,因为使用的是VS2013,而boost库是最新下载的1.60.0版本(注:写这篇文章时1.61.0刚好release),结果还是费了一点工...

SunLightJuly
2016/05/17
1K
0
CentOS6.5 下编译Ceph源码

引言 ceph源码编译不是一件很容易的事情,中间报了很多错误,比如对C++11的依赖,对BOOST的依赖以及大量其他库的依赖,这些过程都要一一解决。本文对编译的过程进行了一个详细的说明,并对碰...

西昆仑
2015/12/03
1K
4
Win32平台Boost的编译方法

本博客(http://blog.csdn.net/livelylittlefish )贴出作 者(三二一@小鱼)相关研究、学习内容所做的笔记,欢迎广大朋友指正! Win32 平台 Boost 的编译方法 本文以 boost1.40 为例,在 Wi...

晨曦之光
2012/03/09
291
0
Linux(Ubuntu)安装CGAL

CGAL相关信息如下: 官网:CGAL官网 百度百科简单介绍:CGAL百度百科 操作系统:Ubuntu 1404 64bit 需编译的目标库:CGAL 4.7(当前最新的正式版本) 根据官网要求,编译CGAL 4.7版本需要: cmake (ve...

大跃跃
2016/02/26
556
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Spring Cloud Gateway 接口文档聚合实现

在微服务架构下,通常每个微服务都会使用Swagger来管理我们的接口文档,当微服务越来越多,接口查找管理无形中要浪费我们不少时间,毕竟懒是程序员的美德。 由于swagger2暂时不支持webflux 走...

冷冷gg
30分钟前
12
0
流利阅读笔记30-20180719待学习

1.今日导读 2.带着问题听讲解 3.新闻正文(中英文对照) 4.重点词汇 5.拓展内容

aibinxiao
32分钟前
1
0
OSChina 周五乱弹 —— 我们是食物链的最底层

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @温家成 :分享谢安琪的单曲《姿色份子》 《姿色份子》- 谢安琪 手机党少年们想听歌,请使劲儿戳(这里) @贪吃飒:最近p2p怎么了、半个月爆了...

小小编辑
46分钟前
6
1
Android Studio 3.0 之后打包apk出现应用未安装问题

1、废话 出现这个问题的原因,并不是只有一个,而是有多个原因,不懂的估计会被搞得一头雾水,下面我列举的是我遇到的几种问题和网友遇到的几种问题,但不一定是全部,也有可能有些莫名其妙的...

她叫我小渝
今天
0
0
前端基础

1. get请求传参长度的误区 误区:我们经常说get请求参数的大小存在限制,而post请求的参数大小是无限制的。 实际上HTTP 协议从未规定 GET/POST 的请求长度限制是多少。对get请求参数的限制是...

wenxingjun
今天
0
0
拦截SQLSERVER的SSL加密通道替换传输过程中的用户名密码实现运维审计(一)

工作准备 •一台SQLSERVER 2005/SQLSERVER 2008服务 •SQLSERVER jdbc驱动程序 •Java开发环境eclipse + jdk1.8 •java反编译工具JD-Core 反编译JDBC分析SQLSERVER客户端与服务器通信原理 SQ...

紅顏為君笑
今天
9
0
jQuery零基础入门——(六)修改DOM结构

《jQuery零基础入门》系列博文是在廖雪峰老师的博文基础上,可能补充了个人的理解和日常遇到的点,用我的理解表述出来,主干出处来自廖雪峰老师的技术分享。 在《零基础入门JavaScript》的时...

JandenMa
今天
0
0
linux mint 1.9 qq 安装

转: https://www.jianshu.com/p/cdc3d03c144d 1. 下载 qq 轻聊版,可在百度搜索后下载 QQ7.9Light.exe 2. 去wine的官网(https://wiki.winehq.org/Ubuntu) 安装 wine . 提醒网页可以切换成中...

Canaan_
今天
0
0
PHP后台运行命令并管理运行程序

php后台运行命令并管理后台运行程序 class ProcessModel{ private $pid; private $command; private $resultToFile = ''; public function __construct($cl=false){......

colin_86
今天
1
0
数据结构与算法4

在此程序中,HighArray类中的find()方法用数据项的值作为参数传递,它的返回值决定是否找到此数据项。 insert()方法向数组下一个空位置放置一个新的数据项。一个名为nElems的字段跟踪记录着...

沉迷于编程的小菜菜
今天
1
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部