boost-1.53源代码编译

摘要:
首先,请明确大多数boost库只有头文件。输入源代码文件夹,首先运行引导程序。bat3,并使用bjam或b2进行编译。我使用的命令是:b2--toolsset=msvc-11.0--build-type=complete--build-dir=“d:result”stage。关于一些选项的解释:stage/install:tage表示只生成库,install还生成包含头文件的include文件夹。工具集:指定编译器,包括borland、gcc、msvc-11.0等。通常,boost库可以在静态模式下编译。因为最终发布了带有boost的dll,所以会很麻烦。有两种方法:共享和静态。这样,运行时链接和链接可以生成四种组合,每个人可以根据自己的需要选择编译。

1、下载源代码。首先得明确,boost大多数库都仅仅有头文件。链接时不需Lib文件;下面库须要单独编译成库:

Boost.Filesystem
Boost.GraphParallel
Boost.IOStreams
Boost.MPI
Boost.ProgramOptions
Boost.Python
Boost.Regex
Boost.Serialization
Boost.Signals
Boost.System
Boost.Thread
Boost.Wave

以下几种是可选的:

Boost.DateTime 
Boost.Graph 
Boost.Math 
Boost.Random
Boost.Test

2、打开VS2012命令行窗体。进入源代码文件夹,首先运行bootstrap.bat

3、用bjam或b2编译。

我採用的命令是:

b2 --toolset=msvc-11.0 --build-type=complete --build-dir="d: esult" stage


关于一些选项的解释:

stage/install:stage表示仅仅生成库(dll和lib),install还会生成包括头文件的include文件夹。

toolset:指定编译器,可选的如borland、gcc、msvc-11.0(VS2012)等。

without/with:选择不编译/编译哪些库。

stagedir/prefix:stage时使用stagedir,install时使用prefix,表示编译生成文件的路径。

build-dir:编译生成的中间文件的路径,编译完毕后可将这个文件夹所有删除。

link:生成动态链接库/静态链接库。生成动态链接库需使用shared方式,生成静态链接库需使用static方式。一般boost库可能都是以static方式编译。由于终于公布程序带着boost的dll感觉会比較累赘。

runtime-link:动态/静态链接C/C++执行时库。

相同有shared和static两种方式,这样runtime-link和link一共能够产生4种组合方式,各人能够依据自己的须要选择编译。

一般link仅仅选static的话。仅仅须要编译2种组合就可以,即link=static runtime-link=shared和link=static runtime-link=static。

threading:单/多线程编译。一般都写多线程程序,当然要指定multi方式了;假设须要编写单线程程序。那么还须要编译单线程库,能够使用single方式。

debug/release:编译debug/release版本号。一般都是程序的debug版本号相应库的debug版本号,所以两个都编译。

因为我没有指令stagedir,所以默认在源代码文件夹下生成stage文件夹,大致例如以下图:

boost-1.53源代码编译第1张

注意对某一种类型的库而言,有2个dll。2个lib,分别来自编译文件夹中的debug hreading-multi和release hreading-multi。还有其他lib,dll并没有在生成的库中。当中间编译文件夹result如filesystem库中文件例如以下:

boost-1.53源代码编译第2张

上面几个文件夹中的库,有点乱,临时还不太清楚详细差别是什么。有待进一步了解。

最后生成的库可在这里下载:http://download.csdn.net/detail/baiwfg2/7529569

4、最后測试验证

须要在project属性中加入头文件文件夹路径和生成库文件夹,但不须要指定库名,由于有auto-link机制

boost-1.53源代码编译第3张

參考网址:

http://www.cnblogs.com/ComputerG/archive/2011/03/10/1979730.html

http://blog.csdn.net/zengraoli/article/details/8870446

另外。源代码内部的网页帮助文档非常值得一看!

免责声明:文章转载自《boost-1.53源代码编译》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ubox及日志管理vs查看虚函数表和类内存布局下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

arcengine 开发经典帖 【强烈推荐仔细研读】

转自原文 arcengine 开发经典帖 使用ArcGIS Engine 开发自定义GIS应用:第一部分:使用ArcGIS Engine 发布自定义GIS应用软件-全面了解ArcGIS Engine的产品。第二部分:ArcEngine9.2的新特性及变化、(续)--类对比及变化、(续)--(代码转换插件)、(续)--ArcEngine新命令,工具、菜单...

powerbuilder 在pb里面怎么把文件编译成exe文件

生成exe步骤:(1)单击powerBar工具栏止的New按钮,打开New对话框,选择Project选项卡,选择Application Wizaard选项;(2)单击OK按钮,打开向导;(3)单击Next按钮进入定义应用所包含的库;(4)单击Next按钮,进入需要他建可执行的程序项目;(5)单击Next按钮,定义可热功当执行文件的名,如果项目包含资源文件,...

Linux下安装Nginx并实现socket代理

nginx可以使用各平台的默认包来安装,本文是介绍使用源码编译安装,包括具体的编译参数信息。 正式开始前,编译环境gcc g++ 开发库之类的需要提前装好,这里默认你已经装好。 ububtu平台编译环境可以使用以下指令 1 2 apt-get install build-essential apt-get install libtool cen...

Xamarin 跨移动端开发系列(01) -- 搭建环境、编译、调试、部署、运行

   (本文是基于老版本的VS和Xamarin,而VS2017已经集成了Xamarin,所以,本文已经过时,最新的Xamarin开发介绍请参见 使用 Xamarin开发手机聊天程序 。)    如果是.NET开发人员,想学习手机应用开发(Android和iOS),Xamarin 无疑是最好的选择,编写一次,即可发布到Android和iOS平台,真是利器中的...

了解Android的编译器

         了解一下Android的编译器并记录下来: Android在4.4以前是使用Dalvik VM的,通过Just In Time(JIT即时编译)来完成编译工作,在Android4.4提供了一种测试版本虚拟机ART(Android Runtime) (在Android5.0以后的系统ART取代了Dalvik),采用Ahead-Of-Time...

Linux下的头文件搜索路径

对于以压缩包发布的软件,在它的目录下通常都有一个配置脚本configure,它的作用确定编译参数(比如头文件位置、连接库位置等),然后生成Makefile以编译程序。可以进入该软件的目录,执行"./configure --help"命令查看使用帮。 一个程序能正确编译、链接、运行需要满足3个条件:预处理时能找到头文件,连接时能找到库(静态库或动态库),运...