Windows下编译boost库

需要编译的boost库

以下的库必须单独编译:

Boost.ChronoBoost.System
Boost.ContextBoost.ProgramOptions
Boost.FilesystemBoost.Python
Boost.GraphParallelBoost.Regex
Boost.IOstreamsBoost.Serialization
Boost.LocaleBoost.Signals
Boost.LogBoost.Thread
Boost.MPI

Boost.Timer

Boost.Wave

具有可选的单独编译的一些库:

Boost.DateTime

有一个二进制组件,在使用其to_string/from_string或序列化功能时才需要

Boost.Graph

有一个二进制组件,在您打算分析GraphViz文件时才需要

Boost.Math

具有TR1和C99 cmath函数的二进制组件

Boost.Random

有一个二进制组件,在你使用random device时需要它。

Boost.Test

可以在“仅标题”或“单独编译”模式下使用,虽然单独编译建议严格使用。

Boost.Exception

为32位MSC_VER==1310和_MSC_VER==1400提供了非浸入性的exception_ptr实现,它需要一个单独编译的二进制文件,由BOOST_ENABLE_NON_INTRUSIVE_EXCEPTION_PTR启用

编译步骤:

打开cmd命令窗口,找到boost目录,运行命令:booststrap.bat

命令运行完毕后boost目录产生下列文件:

使用bjam.exe(或b2.exe)来编译boost,这两个exe作用是一样的,bjam.exe是老版本,b2是bjam的升级版本

例如:

bjam stage --toolset=msvc-9.0 --without-python --stagedir="E:\Sdk\boost\bin\vc9" link=static runtime-link=shared runtime-link=static threading=multi debug release

bjam参数说明:

stage/install

stage表示只生成库(dll和lib),install还会生成包含头文件的include目录

--toolset

指定编译器,可选的如borland、gcc、msvc(vc6)、msvc-9.0(vs2008)等。

--stagedir=<stagedir>

存放编译后库文件的路径,默认是stage

--bulid-type=complete

编译所有版本,不然只会编译一小部分版本(相当于:variant=release,threading=multi;link=shared|static;runtime-link=shared)

--without

--with

选择不编译/编译哪些库,如输入--with-regex就只编译regex库,默认是全部编译,显示需要编译的库名称命令bjam --show-libraries.

--build-dir

编译的临时文件会放在builddir里(编译完就可以把它删除了)

link=static|shared

使用静态库还是动态库

threading=single|multi

使用单线程还是多线程库

runtime-link=static|shared

是静态还是动态链接c/c++标准库

例如:

VS2019编译boost_1_70_0

b2.exe install --prefix=“F:\boost_1_70_0\x64” --build-type=complete --toolset=msvc-14.2  link=shared runtime-link=shared runtime-link=static threading=multi debug release

bjam编译:

如果想使用默认配置,则直接在cmd执行以下命令:b2.exe,大约经过30分钟的时间,编译成功如下:

库命名规则说明:

lib:在windows上,只有普通的静态库使用lib前缀;导入库和DLL不使用

boost_XXX:所有boost库名文件以boost_xxx开头

-vc142:toolset标记;标识了构建该库所用的toolset和版本

-mt:threading标记;标识构建该库启用了多线程支持,不支持多线程的库没有-mt。

g:使用标准库和运行时支撑库的调试版本

d:构建代码的调试版本

s:静态链接到C++标准库和编译器运行时支撑库

y:使用Python的特殊调试构建

p:使用STLPort标准库而不是编译器提供的默认库

n:使用STLPort已被弃用的“native iostreams”

-1_67:版本标记;完整的boost发布号,下划线代替点

.lib:扩展名:取决于操作系统,在大多数unix平台上,.a是静态库,.so是共享库。在Windows上,.dll表示共享库,.lib是静态库或导入库。

VS配置库目录:

右键项目-》属性:

指定附加依赖项:

或者使用命令:

#pragma comment(lib, "libboost_date_time-vc142-mt-x32-1_67.lib")

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值