zoukankan      html  css  js  c++  java
  • VS2010编译Boost 1.57 静态链接库

    http://www.cnblogs.com/cuish/p/4175491.html

    0、前提

    Boost库版本 1.57.0

    下载地址

    http://www.boost.org/users/history/version_1_57_0.html,选择windows版

    编译器:VS2010 

    编译目标:静态链接库

    C/C++运行库链接方式: /MT  /MTd   /MD   /MDd

    官网给出的windows平台编译器测试包括

    Windows:

    GCC, mingw: 4.4.0, 4.4.7. 4.5.4, 4.6.3, 4.7.2, 4.7.3, 4.8.0, 4.8.2, 4.9.0

    Visual C++: 8.0, 9.0, 10.0, 11.0, 12.0

    编译步骤

    1、通过VS2010命令提示符工具进入Boost库根目录

         比如:H:Boostoost_1_57_0

    2、运行根目录下批处理文件

         bootstrap.bat

    3、执行bootstrap.bat后生成4个文件

           b2.exe     bjam.exe   bootstrap.log    project-config.jam

            

    4、用 bjam.exe 来编译boost库

         关于 bjam.exe编译Boost库的命令行参数的详细参数可以看 这个链接

         

         bjam参数简介

         link参数

         表示生成静态链接库 或 生成动态链接库, link=static表示生成静态链接库, link=shared表示生成动态链接库。

         runtime-link参数

         表示使用C/C++运行库的方式,runtime-link=static表示静态链接C/C++运行库,runtime-link=shared标识动态链接C/C++运行库。 

          --toolset参数

         表示编译boost库的工具集, --toolset=msvc-10.0标识使用VS2010编译,VS版本和工具集版本的对应关系如下:

         msvc-6.0 :  VC6.0

         msvc-7.0:  VS2003

         msvc-8.0:  VS2005

         msvc-9.0:  VS2008

         msvc-10.0:  VS2010

          threading参数

          表示使用多线程库还是单线程库, single表示单线程, multi表示多线程

          debug  release标识生成debug或release版本

          stage参数

          表示只生成dll 或 lib,而不生成包含include目录的头文件目录,  如果要生成包含头文件的include目录,需要使用install参数

         --stagedir参数

         表示生成目录的存放目录

         在本文中编译了boost中为每个库编译了4中C/C++链接方式的静态链接库

         ① /MT   /MTd

          bjam   stage     --toolset=msvc-10.0  --build-type=complete  --stagedir="H:Boostoost_1_57_0invc10"     link=static    runtime-link=static     threading=multi   debug release

          生成的库名字格式

          /MT: libboost_atomic-vc100-mt-s-1_57.lib      /MTd:  libboost_atomic-vc100-mt-sgd-1_57.lib

         ② /MD   /MDd

          bjam   stage     --toolset=msvc-10.0  --build-type=complete  --stagedir="H:Boostoost_1_57_0invc10"     link=static    runtime-link=shared     threading=multi   debug release

          生成的库文件名字格式

          /MD:  libboost_atomic-vc100-mt-1_57.lib         /MDd:  libboost_atomic-vc100-mt-gd-1_57.lib

    5、编译完成

         每类/MT  /MTd  /MD   /MDd的静态库各有34个lib。

         编译完成后,删除boost目录的bin.v2临时目录。

    6、在VS中使用boost库     

        项目属性--VC++目录--包含目录,设置为boost根目录

        

        

         项目属性--VC++目录--库目录,设置lib文件目录

        

         

    7、参考文献

        VS2010编译Boost 1.56  

        编译Boost 详细步骤 适用 VC6 VS2003 VS2005 VS2008 VS2010  

  • 相关阅读:
    【nodejs原理&源码杂记(8)】Timer模块与基于二叉堆的定时器
    【nodejs原理&源码赏析(7)】【译】Node.js中的事件循环,定时器和process.nextTick
    【nodejs原理&源码赏析(6)】深度剖析cluster模块源码与node.js多进程(下)
    【nodejs原理&源码赏析(5)】net模块与通讯的实现
    【nodejs原理&源码赏析(4)】深度剖析cluster模块源码与node.js多进程(上)
    工作一年多的感慨与总结(二)
    工作一年多的感慨与总结(一)
    动手实践Mybatis插件
    MySQL存储引擎
    Tomcat类加载架构
  • 原文地址:https://www.cnblogs.com/Travis990/p/4521905.html
Copyright © 2011-2022 走看看