[普通]boost库编译

作者(passion) 阅读(1448次) 评论(0) 分类( c++)

一.  windows


(1)首先下载源代码

解压到某个目录,我解压到了D盘根目录:D:\boost

(2)生成bjam.exe可执行文件

用VS2010命令行

进入到到目录D:\boost,运行booststrap.bat得到:


这时在目录D:\boost_1_56_0生成了b2.exe、bjam.exe、project-config.jam文件。

(3)用bjam.exe编译

运行命令


bjam stage --without-python --toolset=msvc-14.0 address-model=64 --build-type=complete --stagedir="e:\boost_1_65_1\stage\vc10"  address-model=64 link=static runtime-link=shared threading=multi debug release



bjam可以参考http://blog.chinaunix.net/uid-22301538-id-3158997.html

stage表示只生成库(dll和lib),用install的话还会生成包含头文件的include目录。
toolset指定编译器,VS2010用msvc-10.0。
without/with表示不编译/编译哪些库。
stagedir,当使用stage时用stagedir,使用install用prefix,表示编译生成文件的路径。路径的命名最好和编译器相关,编译管理。
link指定生成动态链接库或静态链接库。生成动态链接库需使用shared方式,生成静态链接库需使用static方式。
runtime-link,动态/静态链接C/C++运行时库。有shared和static两种方式,这样runtime-link和link一共可以产生4种组合方式。
threading,单/多线程编译。
debug/release,编译debug/release版本。一般都是程序的debug版本对应库的debug版本,所以两个都编译。

差不多需要一小时,编译完成(中间会有警告)。

编译好后,在根目录会有个bin.v2文件夹,是编译过程中的临时文件夹,很大,可以手动删除。

(4)在VS中使用Boost库

新建工程后需要把Boost库包含到工程中,右键选择属性,在VC++目录的“包含目录”中添加Boost的根目录,在“库目录”添加刚刚编译生成的位置再加上路径lib。




编译64

bootstrap.bat生成x64版的bjam.exe  b2.exe
b2.exe  --build-type=complete --stagedir=".\lib\vc12_x64" address-model=64  



一.  linux

wget https://dl.bintray.com/boostorg/release/1.64.0/source/boost_1_64_0.tar.gz

tar zxvf boost_1_64_0.tar.gz

cd boost_1_64_0.tar.gz

./bootstrap.sh --with-libraries=all --with-toolset=gcc ##--with-libraries指定编译哪些boost库,all的话就是全部编译,只想编译部分库的话就把库的名称写上,之间用 , 号分隔即可,可指定的库下面介绍。--with-toolset指定编译时使用哪种编译器,Linux下使用gcc即可,如果系统中安装了多个版本的gcc,在这里可以指定gcc的版本,比如--with-toolset=gcc-4.4


./b2 cxxflags="--std=c++11" -j8 install

« 上一篇:wifi共享上网(至尊版wifi)
« 下一篇:【ffmpeg + VS2010】编译包含libavutil\common.h后出现找不到inttypes.h的问题
在这里写下您精彩的评论
  • 微信

  • QQ

  • 支付宝

返回首页
返回首页 img
返回顶部~
返回顶部 img