• 使用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

  • 相关阅读:
    lua 逻辑运算 and, or, not
    redis和memcache列出所有key
    Linux protobuf
    CGI,FastCGI,PHP-CGI与PHP-FPM
    lua使用笔记2:Linux 中安装php的lua扩展
    lua使用笔记1:Linux 中安装lua
    Android APK反编译详解
    git 常用命令
    git push 403错误解决方法
    linux(centos)搭建SVN服务器
  • 原文地址:https://www.cnblogs.com/findumars/p/6430605.html
Copyright © 2020-2023  润新知