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
MSVC编译Boost的几种链接方式的更多相关文章
- 使用MinGW编译Boost,MSVC编译Boost的几种链接方式 good
1.下载Boost(http://www.boost.org) 我目前用的是1.61.0版本 2.将MinGW下的bin目录完整路径设置到系统环境变量Path中,保证cmd命令行能找到gcc,g++等 ...
- VMware三种链接方式
VMware三种链接方式 第一种:桥接Bridged 如其的说明:connected directly to the physical networkà直接连接到物理网络.如果是通过路由器连接出来的D ...
- Html CSS的三种链接方式
感谢原文:https://blog.csdn.net/abc5382334/article/details/24260817 感谢原文:https://blog.csdn.net/jiaqingge/ ...
- VS2010编译Boost 1.57 静态链接库
http://www.cnblogs.com/cuish/p/4175491.html 0.前提 Boost库版本 1.57.0 下载地址 http://www.boost.org/users/his ...
- SQL语句的执行计划(oracle表的三种链接方式)
SQL语句我们写完之后,就是分析其优化,这就要求我们了解到底数据是怎么存储. 首先我们需要了解,表链接的几种方式 nested loop join sort merge join hash join ...
- Oracle三种链接方式的区别
1 nested loops join--我们用设置statistics_level=all的方式来观察如下表连接语句的执行计划: --T2表被访问100次(驱动表访问1次,被驱动表访问100次)-- ...
- 浅谈boost.variant的几种访问方式
前言 variant类型在C++14并没有加入,在cppreference网站上可以看到该类型将会在C++17加入,若想在不支持C++17的编译器上使用variant类型,我们可以通过boost的va ...
- C++ 系列:编译 boost
Copyright © 1900-2016, NORYES, All Rights Reserved. http://www.cnblogs.com/noryes/ 欢迎转载,请保留此版权声明. -- ...
- VS2008编译boost库
一.下载首先从boost官方主页http://www.boost.org/下载最新版boost安装包,我用的版本是boost.1.49.0二.新建文件夹 如果是使用下载的安装包,那么请将boost安装 ...
随机推荐
- C#使用wkhtmltopdf.exe,HTML页面转化为PDF文档
此文用来记录使用wkhtmltopdf.exe在C#代码中将html转换为PDF的过程: 1,在http://wkhtmltopdf.org/downloads.html 下载wkhtmltopdf. ...
- Redis学习笔记--String(四)
Redis的第一个数据类型string 1.命令 1.1赋值 语法:SET key value Set key value; > OK 1.2取值 语法:GET key > get tes ...
- eclipse编译器错误、警告设置
颜色配置步骤:Window->Preferences->General->Editors->Text Editors->Annotations
- vue项目中一些文件的作用
原文 简书原文:https://www.jianshu.com/p/38749e5bec3c 大纲 1.vue项目结构 2.主要的配置文件 2.1.package.json 2.2.dev-serve ...
- ORACEL上传BLOB,深度遍历文件夹
// uploadingDlg.cpp : 实现文件// #include "stdafx.h"#include "uploading.h"#include & ...
- Java中compareTo()方法比较字符串详解
中心:String 是字符串,它的比较用compareTo方法,它从第一位开始比较, 如果遇到不同的字符,则马上返回这两个字符的ascii值差值.返回值是int类型 1.当两个比较的字符串是英文且长度 ...
- 无意中发现Markdown,最终解放了我
文件夹 概述 换行 删除线 链接自己主动识别 表格 代码块高亮 定义列表 脚注 自己主动生成文件夹 參考资料 正文 概述 大部分情况下,Markdown的基本的语法已够我们使用,比方随性记录点东西.非 ...
- form表单嵌套,用标签的form属性来解决表单嵌套的问题
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- 计算git树上随意两点的近期切割点。
1.git是一种分布式代码管理工具,git通过树的形式记录文件的更改历史,比方: base'<--base<--A<--A' ^ | --- B<--B' 小米project师 ...
- Android中常用的优秀开源框架
Android开源框架库分类,挑选出最常用,最实用的开源项目,本篇主要介绍的是优秀开源框架库和项目,UI个性化控件会独立介绍.UI个性化控件 Index Dependency Injections A ...