zoukankan      html  css  js  c++  java
  • 使用MinGW编译Boost,MSVC编译Boost的几种链接方式 good

    1、下载Boost(http://www.boost.org) 
    我目前用的是1.61.0版本

    2、将MinGW下的bin目录完整路径设置到系统环境变量Path中,保证cmd命令行能找到gcc,g++等命令。

    3、cmd进入到boost目录下面,执行"bootstrap.bat gcc",目录下会生成一个b2.exe

    4、执行b2.exe开始编译。可以根据自身需要执行不同的编译命令,比如: 
    bjam.exe stage –toolset=gcc –with-exception –with-locale –with-program_options –stagedir=E:Boost1.61mingw610 link=static runtime-link=static

    我编译1.60,用的命令是:bjam "toolset=gcc" install,结果生成c:oostinclude和 c:oostlib和C:oostin.v2 三个文件夹

    其他更多编译参数自行上网查询。

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

    折腾了好几个小时,终于理清了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

  • 相关阅读:
    POJ 2236 Wireless Network(并查集)
    POJ 2010 Moo University
    POJ 3614 Sunscreen(贪心,区间单点匹配)
    POJ 2184 Cow Exhibition(背包)
    POJ 1631 Bridging signals(LIS的等价表述)
    POJ 3181 Dollar Dayz(递推,两个long long)
    POJ 3046 Ant Counting(递推,和号优化)
    POJ 3280 Cheapest Palindrome(区间dp)
    POJ 3616 Milking Time(dp)
    POJ 2385 Apple Catching(01背包)
  • 原文地址:https://www.cnblogs.com/findumars/p/6430605.html
Copyright © 2011-2022 走看看