zoukankan      html  css  js  c++  java
  • MSVC编译Boost的几种链接方式

    折腾了好几个小时,终于理清了Boost链接的组合方式,记录一下。

    A1、动态链接Boost的动态库
    A2、静态链接Boost的动态库

    B1、动态链接VC运行库
    B2、静态链接VC运行库

    那么这样就有2x2=4种方式链接Boost。但是一般使用Boost的码农们都不会用动态链接的方式吧,因为Boost的头文件默认都是静态链接的
    而且动态链接还要附带Boost的DLL文件,另一方面,我们可能并不想让别人知道我们用了Boost。基于这些原因,本文只考虑静态链接Boost库的方式

    再说说MSVC,一个项目有Debug和Release模式,还可以设置是动态链接VC库还是静态链接VC库

    1、动态链接VC的Boostlib + 动态链接VC库(MD) + Debug
    2、动态链接VC的Boostlib + 动态链接VC库(MD) + Release
    3、动态链接VC的Boostlib + 静态链接VC库(MT) + Debug
    4、动态链接VC的Boostlib + 静态链接VC库(MT) + Release
    5、静态链接VC的Boostlib + 动态链接VC库(MD) + Debug
    6、静态链接VC的Boostlib + 动态链接VC库(MD) + Release
    7、静态链接VC的Boostlib + 静态链接VC库(MT) + Debug
    8、静态链接VC的Boostlib + 静态链接VC库(MT) + Release

    也就是说,为了编译一个比较通用的,能够适应项目的各种设置的Boost库,每个Boost的模块需要编译8个不同的lib文件。
    编译参数中不特别指定variant的话,就是把Debug和Release都编译了,所以我们只需要编译2次就可以获得每个lib的8种不同的文件。

    bjam.exe --build-dir=E:/Boost/Boost_1.55.0_VC2013_X64/temp --stagedir=E:/Boost/Boost_1.55.0_VC2013_X64 link=static runtime-link=static address-model=64
    bjam.exe --build-dir=E:/Boost/Boost_1.55.0_VC2013_X64/temp --stagedir=E:/Boost/Boost_1.55.0_VC2013_X64 link=static runtime-link=shared address-model=64

    --build-dir是临时文件路径。--stagedir是动态库输出目录。address-model=64指定使用x64架构。如果要编译x86的话把address-model去掉就行了。

    http://blog.csdn.net/aqtata/article/details/29583259

  • 相关阅读:
    课程作业3
    课程作业一(改进)
    C语言中的几种常见排序算法
    PADS 导Gerber文件
    时钟信号线上串一小电阻的作用
    Allegro pcb -等长设计
    Allegro PCB -内层分割,比如电源层需要分割几种电源
    Allegro PCB -通孔焊盘制作 及Flash制作
    Allegro PCB -如何做自定义焊盘
    MFC中的NMHDR结构体和NMUPDOWN结构体
  • 原文地址:https://www.cnblogs.com/findumars/p/4781195.html
Copyright © 2011-2022 走看看