zoukankan      html  css  js  c++  java
  • boost-1.53源代码编译

    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文件夹,大致例如以下图:


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


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

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

    4、最后測试验证

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


    參考网址:

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

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

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

  • 相关阅读:
    Linux常用命令
    Linux常用命令
    Linux常用命令
    Linux 三剑客
    Python思维导图(二)—— 数据类型
    Python思维导图(一)—— 基础
    testNg
    Linux安装Git
    本地Git绑定Github仓库
    TCP协议与UDP协议
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/7290329.html
Copyright © 2011-2022 走看看