CentOS 7下编译安装Boost_1_57_0
之前对库的理解太肤浅(现在也仍很肤浅),导致走了挺多的弯路,现记录以备后查。
现在可以从Boost官网下载到最新的Boost源代码boost_1_57_0.tar.gz。
现将步骤记录如下:
1. 解压(非root)
$tar -xf boost_1_57_0.tar.gz
2. 执行bootstrap.sh(非root)
$cd boost_1_57_0
$./bootstrap.sh
3. 编译(非root):./b2 参数
这时没有说编译安装,是因为在非root账户下,编译安装过程中产生的各种库文件放不进去/usr/local/目录下。
默认的编译参数保存在project-config.jam下,可用vim自己查看。
./b2有诸多的参数可以选择,如下(./b2 --help):

在这里,我就选择比较简单的参数:
$./b2 --without-python stage debug
编译时间会比较久,编译成功后会生成boost目录(头文件)、stage/lib目录(动态库及静态库)。
4. 头文件及库文件拷贝:sudo cp src_dir des_dir
将编译产生的boost目录拷贝至/usr/include/,将stage/lib/下的所有文件拷贝至/usr/lib64/下,如下:
$sudo cp -rf boost /usr/include
$sudo cp -rf stage/lib/* /usr/lib64
5. 测试
测试文件test.cpp:
#include <iostream>
#include <string>
#include <boost/regex.hpp> int main()
{
std::string str = "192.168.1.1"; boost::regex expression("([0-9]+).([0-9]+).([0-9]+)");
boost::smatch what; if(boost::regex_search(str, what, expression))
{
std::cout << what.size() << std::endl;
for(size_t i = ; i < what.size(); i++)
{
if(what[i].matched)
{
std::cout << what[i] << std::endl;
}
}
} return ;
}
Makefile:
INC_DIR=-I/usr/include/
LIB_DIR=-L/usr/lib64/
LIB=-lboost_regex CC=g++ -g
CFLAGS=-Wall
EXE=test all:
$(CC) $(CFLAGS) $(EXE).cpp -o $(EXE) $(INC_DIR) $(LIB_DIR) $(LIB) clean:
rm -rf *.o $(EXE)
6. 将Boost库安装在其他地方
我们可能并不愿意将Boost库直接安装到/usr/目录下,而是/usr/local/下。
$sudo mkdir /usr/local/boost_1_57_0
$sudo mkdir /usr/local/boost_1_57_0/include
$sudo mkdir /usr/local/boost_1_57_0/lib64
$sudo cp -rf boost /usr/local/boost_1_57_0/include
$sudo cp -rf stage/lib/* /usr/local/boost_1_57_0/lib64
因为不是默认安装在/lib或者/usr/lib目录下,所以需要修改下/etc/ld.so.cache文件,将新的库目录/usr/local/boost_1_57_0/lib64添加到/etc/ld.so.cache文件中,步骤如下:
a) 编辑/etc/ld.so.conf文件,加入库文件所在目录的路径
/usr/local/boost_1_57_0/lib64/
b) 运行ldconfig,该命令会重建/etc/ld.so.cache文件
另外,相应的Makefile在编写的时候需要将头文件目录和库目录改为:
INC_DIR=-I/usr/local/boost_1_57_0/include/
LIB_DIR=-L/usr/local/boost_1_57_0/lib64/
7. Boost库“卸载”
因为我们只是简单地拷贝头文件和库文件,因此,我们直接删除Boost库头文件和库文件就可以了,如下:
$sudo rm -rf /usr/include/boost
$sudo rm /usr/lib64/*boost*
8. 后记
本人采用的方法相对笨重一点,最好当然就是直接“sudo ./b2 参数”。具体看各人需要吧。
CentOS 7下编译安装Boost_1_57_0的更多相关文章
- CentOS 6下编译安装MySQL 5.6
一:卸载旧版本 使用下面的命令检查是否安装有MySQL Server rpm -qa | grep mysql 有的话通过下面的命令来卸载掉 rpm -e mysql //普通删除模式 rpm -e ...
- CentOS 7 下编译安装lnmp之PHP篇详解
一.安装环境 宿主机=> win7,虚拟机 centos => 系统版本:centos-release-7-5.1804.el7.centos.x86_64 二.PHP下载 官网 http ...
- CentOS 7 下编译安装lnmp之nginx篇详解
一.安装环境 宿主机=> win7,虚拟机 centos => 系统版本:CentOS Linux release 7.5.1804 (Core),ip地址 192.168.1.168 ...
- 在CentOS 7下编译安装Nginx+PHP+MySQL环境
本文转载自:http://www.softeng.cn/?p=156,本文已获得作者授权,未经作者同意,不可转载. 1.前言 本文适合于已经对Linux操作系统具有基本操作经验,并且能够在Linux或 ...
- CentOS Linux下编译安装MySQL
本文参考张宴的Nginx 0.8.x + PHP 5.2.13(FastCGI)搭建胜过Apache十倍的Web服务器(第6版)[原创]完成.所有操作命令都在CentOS 6.4 64位操作系统下实践 ...
- centos 6 下编译安装 nginx
下载nginx源码包,可以到nginx官方的下载文件归档里 http://nginx.org/download/ 下载 下载pcre源码,并编译安装,从pcre官方下载 ftp://ftp.csx. ...
- CentOS 7 下编译安装lnmp之MySQL篇详解
一.安装环境 宿主机=> win7,虚拟机 centos => 系统版本:centos-release-7-5.1804.el7.centos.x86_64 二.MySQL下载 MySQL ...
- Centos 7下编译安装Nginx
一.下载源代码 百度云网盘下载地址:https://pan.baidu.com/s/19MQODvofRNnLV9hdAT-R6w 提取码:zi0u 二.安装依赖及插件 yum -y install ...
- 在centos环境下编译安装myrocksdb
rocksdb(https://rocksdb.org.cn/)是脸书(facebook)公司开源的一个key-value存储引擎,基于leveldb开发.rocksdb使用的是LSM存储引擎,纯c+ ...
随机推荐
- PGM:概率论基础知识
http://blog.csdn.net/pipisorry/article/details/52459847 概率图模型PGM:概率论基础知识 独立性与条件独立性 独立性 条件独立性 也就是表示给定 ...
- 安卓开发:简单的登陆跳转_APK实现直接跳转到本CSDN博客
最近在开始接触Android APP开发,有了一点java基础之后,安卓代码确实看起来就没有那么难了,可以跟着书上把例程敲一遍,然后熟能生巧可以应用起来,现在写了一个简单的APP,实现的是Edit编辑 ...
- 剑指Offer——小米+小红书笔试题+知识点总结
剑指Offer--小米+小红书笔试题+知识点总结 情景回顾 时间:2016.9.23 19:00-21:00 2016.9.24 15:00-17:00 地点:山东省网络环境智能计算技术重点实验室 事 ...
- xlsx批量转为utf8的csv
xlsx批量转为utf8的csv(金庆的专栏)策划的配置表为 xlsx 表格,可以有注释,公式.服务器和客户端使用的配置文件需要转成 csv 文件.使用 WPS 另存无法批量转换,并且结果不是utf8 ...
- Android图片setBackgroundResource和setImageResource的区别
网上对于这2个的区别大都是如下所示: setImageResource與xml中的src的屬性才是相匹配的,而setBackgroundResource是與xml中的background屬性相匹配 的 ...
- Windows安装和使用fftw
FFTW是一个比较快的.非常出名的一个DFT的开源库. 本文探索安装和配置FFTW,用Visual Studio 2008来使用fftw. 第一步:下载最新的fftw库 这一步很简单,只要在googl ...
- 剑指Offer——Trie树(字典树)
剑指Offer--Trie树(字典树) Trie树 Trie树,即字典树,又称单词查找树或键树,是一种树形结构,是一种的单词.对于每一个单词,我们要判断他出没出现过,如果出现了,求第一次出现在第几个位 ...
- android view事件分发机制
首先我们先写个简单的例子来测试View的事件转发的流程~ 1.案例 为了更好的研究View的事件转发,我们自定以一个MyButton继承Button,然后把跟事件传播有关的方法进行复写,然后添加上日志 ...
- Ubuntu下安装GTK环境
要生成C图形界面的程序,得安装GTK环境 安装GTK环境只要安装一个gnome-core-devel就可以了,里面集成了很多其他的包.除此之外还要转一些其他的 东西,如libglib2.0 ...
- 小文本——Cookies
http协议的无状态性导致在需要会话的场景下寸步难行,例如一个网站为了方便用户,在一段时间内登录过改网站的浏览器客户端实现自动登录,为实现这种客户端与服务器之间的会话机制需要额外的一些标识,http头 ...