Boost在Linux 64 下的编译
1. 下载最新版的boost
wget https://dl.bintray.com/boostorg/release/1.67.0/source/boost_1_67_0.tar.gz
2. 解压
3. 执行如下脚本
function make_boost() {
deploy=$(pwd)
$deploy/b2 stage --toolset=gcc-4.9 --stagedir="$deploy/gcc" \
architecture=x86 address-model= \
link=static runtime-link=static threading=multi \
--without-python
#--with-system --with-thread --with-date_time
}
function make_issue() {
gcc_path=/opt/rh/devtoolset-/root/usr/bin/g++
version=$($gcc_path -dumpversion | awk -F'.' '{printf("%s.%s\n", $1, $2);}')
echo "using gcc : $version : $gcc_path ; " > tools/build/src/user-config.jam
}
make_issue
make_boost
第一步是为了启用4.9的编译器。
make的参数解释如下
下面对上面的bjam的各个参数进行解释说明:
1. stage/install:
stage表示只生成库(dll和lib),install表示附带安装功能,会生成包含头文件的include目录。推荐使用stage,因为install生成的这个include目录实际就是boost安装包解压缩后的boost目录(H:\boost\boost_1_55_0\boost,只比include目录多几个非hpp文件,都很小),所以可以直接使用,而且不同的IDE都可以使用同一套头文件,这样既节省编译时间,也节省硬盘空间
2. toolset:
表示编译器工具,默认自动检测,安装了多个编译器的时候可以使用此属性。可选的如borland、gcc、msvc(VC6)、msvc-12.0(VS2013)、msvc-14.0(VS2015)等,我安装的是VS2008,所以是msvc-9.0(如果你是VS2005,可以使用msvc-8.0 VS2010是msvc-10.0)
3. stagedir/prefix:
stage时使用stagedir,install时使用prefix,表示编译生成文件的路径。推荐给不同的IDE指定不同的目录,例如这里是VS2008对应的是 H:\boost\boost_1_55_0\vc90
如果使用了install参数,那么还将生成头文件目录,vc90 对应的就是 H:\boost\boost_1_55_\boost\bin\vc90\include\boost_1_55_0\boost
4. architecture
表示架构,也就是你的CPU架构,所以是x86
5. address-model
地址长度,32表示编译32位的库文件,64表示编译64位的库文件
6. link
生成动态链接库还是静态链接库。生成动态链接库需使用shared方式,生成静态链接库需使用static方式。一般boost库可能都是以static方式编译,因为最终发布程序带着boost的dll感觉会比较累赘
7. runtime-link
动态还是静态链接C/C++运行时库。同样有shared和static两种方式,这样runtime-link和link一共可以产生4种组合方式,各人可以根据自己的需要选择编译
GCC下,在生成动态库(–link=shared)时,就不允许进行静态链接到C运行库(或C++标准库)
8. threading
单线程还是多线程编译。一般都写多线程程序,当然要指定multi方式了;如果需要编写单线程程序,那么还需要编译单线程库,可以使用single方式
9. debug/release:
编译debug/release版本。一般都是程序的debug版本对应库的debug版本,所以两个都编译
10. without/with:
选择不编译/编译哪些库。这里我们指定要编译哪些库,就使用了witth,注意写法:--with-thread --with-date_time,同样,如果不想编译哪些库,可以类似写法--without-thread
参考资料
https://blog.csdn.net/yzf279533105/article/details/77658367
Boost在Linux 64 下的编译的更多相关文章
- linux终端下 编译c语言程序
linux终端下,编译C语言程序步骤为: 采用vi进行源代码编写,编写完成后,:wq存盘退出,如: vi test.c 在命令行下,运行gcc编译程序,生成执行码,如: gcc -o test te ...
- JPEG库在Linux系统下的编译和移植【转】
本文转载自: 这篇文章介绍了jpeg库在Linux系统下的编译和移植,经过了亲自的验证,编译首先需要准备以下资源:jpegsrc.v6b.tar.gz(jpeg库),libtool-1.5.26.ta ...
- PCL库在Linux环境下的编译安装
PCL库在Linux环境下的编译安装 PCL库的源码库:https://github.com/PointCloudLibrary/pcl 下载完了之后解压下来 编译库的几个步骤 mkdir build ...
- boost库在windows下的编译和使用
因为跨平台的原因,现在要使用到boost库,boost库非常大,现在处于摸索阶段. 首先来说boost库在window下的安装和使用. 一.下载 首先从boost官方主页http://www.boos ...
- Linux 环境下 javac 编译错误: 编码UTF8的不可映射字符 (编码UTF8/GBK的不可映射字符)
Linux 系统下一般默认使用UTF-8编码, 使用javac 编辑使用其他编码格式编写的源吗时,会出现 “ 错误: 编码UTF8的不可映射字符 ”. 最近在使用 javac 编译 一个在wind ...
- Linux(centos)下mysql编译安装教程
Linux下mysql编译安装教程 #查看linux发行版本 cat /etc/issue #查看linux内核版本号 uname -r 本文測试环境centOS6.6 一.Linux下编译安装MyS ...
- Linux/Ubuntu下 静态编译Qt程序
一般情况下,我们用Qt编译出来的程序是要依赖于系统Qt库的,也就是这个程序移到别的没有安装Qt库的系统上是不能使用的.会提示缺少……库文件之类的错误.这就是动态编译的结果. 但是如果我们想编译一个程序 ...
- Java web项目在linux环境下自动编译和部署脚本
自动编译脚本 build.sh, 放置在项目根目录下. #!/bin/bash # check args # init path CURRPATH=`pwd` LIBDIR="$CURRPA ...
- Linux(64) 下 Tomcat + java 环境搭建
查看 linux 系统位数 getconf LONG_BIT java JDK下载地址: http://download.oracle.com/otn-pub/java/jdk/8u181-b13/ ...
随机推荐
- BZOJ3930 [CQOI2015]选数【莫比乌斯反演】
Description 我们知道,从区间[L,H](L和H为整数)中选取N个整数,总共有(H-L+1)^N种方案.小z很好奇这样选出的数的最大公约数的规律,他决定对每种方案选出的N个整数都求一次最大公 ...
- 加密shell
shc -v -r -T -f script-name >/dev/null 2>&1
- [CF895E]Eyes Closed
luogu description 一个序列\(a_i\),支持一下两种操作. \(1\ \ l_1\ \ r_1\ \ l_2\ \ r_2\): 随机交换区间\([l_1,r_1]\)和\([l_ ...
- LeetCode 819. Most Common Word
原题链接在这里:https://leetcode.com/problems/most-common-word/description/ 题目: Given a paragraph and a list ...
- nginx 支持ie 6 等低版本https 的配置
nginx 配置 https 支持ie6 等低版本(主要是加密套件的问题) server { listen 443 ssl; server_name itapiway.demo.com; ssl_ce ...
- [深度学习]Python/Theano实现逻辑回归网络的代码分析
2014-07-21 10:28:34 首先PO上主要Python代码(2.7), 这个代码在Deep Learning上可以找到. # allocate symbolic variables for ...
- cookie添加中文encoding/decoding
添加时编码,读取是解码,否则编译不过 Cookie cookie=new Cookie("姓名","黄嘎兵"); respose.addCookie(cooki ...
- CMake尝鲜
安装gcc,cmake,g++,gdb sudo apt-get install gcc cmake g++ gdb sudo apt-get update && sudo apt-g ...
- Android照片墙完整版,完美结合LruCache和DiskLruCache
转载地址:http://blog.csdn.net/guolin_blog/article/details/34093441#comments 在上一篇文章当中,我们学习了DiskLruCache的概 ...
- 简单安装MySQL(RPM方式)
本次测试使用一台ip为192.168.2.21的虚拟机 下边的步骤虽然多,但是跟着命令或者复制粘贴命令即可完成操作,并无难点 1.安装准备 MySQL-server-5.6.35-1.linux_gl ...