欢迎转载,转载请注明原文地址http://blog.csdn.net/majianfei1023/article/details/46761029



学习开源库第一步就是编译安装好库,然后执行成功一个demo,然后才干进行之后的工作。

以下就来讲讲boost库在linux下的安装。

[mjf@localhost ~]$
tar -zxvf boost_1_55_0.tar.gz


[mjf@localhost boost_1_55_0]$ ./bootstrap.sh --prefix=/home/mjf/lib

[mjf@localhost boost_1_55_0]$ sudo ./b2 install

1.解压



2.生成bjam


上述命令能够带有各种选项,详细可參考帮助文档: ./bootstrap.sh --help。当中--prefix參数。能够指定安装路径。假设不带--prefix參数的话,默认路径是 /usr/local/include 和 /usr/local/lib,分别存放头文件和各种库。

(不带prefix的话,理论上不须要手动配置环境变量!)

3.编译,安装

这里是所有编译。

当然也能够选择仅仅编译一部分。选项 --with-<library> 仅仅编译指定的库,如输入--with-regex就仅仅编译regex库了。

编译完毕后,进行安装,也就是将头文件和生成的库,放到指定的路径(--prefix)下



bjam的一些经常使用的參数,列表例如以下:

--build-dir=<builddir> 编译的暂时文件会放在builddir里(这样比較好管理,编译完就能够把它删除了)
--stagedir=<stagedir> 存放编译后库文件的路径,默认是stage
--build-type=complete

编译全部版本号,不然仅仅会编译一小部分版本号,确切地说是相当于:

variant=release, threading=multi;link=shared|static;runtime-link=shared

variant=debug|release 决定编译什么版本号(Debug or Release?)
link=static|shared 决定使用静态库还是动态库
threading=single|multi 决定使用单线程还是多线程库
runtime-link=static|shared 决定是静态还是动态链接C/C++标准库
--with-<library> 仅仅编译指定的库。如输入--with-regex就仅仅编译regex库了
--show-libraries 显示须要编译的库名称



4.配置环境变量

把/usr/mjf/lib/lib追加到动态链接库配置文件/etc/ld.so.conf中,然后直接执行ldconfig。

/etc/profile增加下面两行:

BOOST_INCLUDE=/home/mjf/lib/include

export=BOOST_INCLUDE

BOOST_LIB=/home/mjf/lib/lib

export=BOOST_LIB

然后运行source /etc/profile让马上生效。

安装完毕。我们就来执行一个样例:

#include <iostream>
#include <boost/timer.hpp>
using namespace std; int main()
{
boost::timer t;
cout << "max timespan:"<<t.elapsed_max()/3600<<"h"<<endl; cout << "min tmiespan:"<<t.elapsed_min()<<"s"<<endl; cout<<"now time elapsed:"<<t.elapsed()<<"s"<<endl;
return 0;
}

g++ -o test test.cpp -I$BOOST_INCLUDE -L$BOOST_LIB

./test

boost.asio学习笔记一、linux下boost库的安装的更多相关文章

  1. Linux下MiniGUI库的安装

    Linux下MiniGUI库的安装 今天试了下安装MiniGUI的库 先仿照官网的教程安装 传送门:MiniGUI官网 一.配置依赖环境 安装构建工具 apt install binutils aut ...

  2. 【Linux开发】Linux下jpeglib库的安装详解

    Linux下jpeglib库的安装详解 首先要下载所需的库压缩包:jpegsrc.v6b.tar.gz或 jpegsrc.v8b.tar.gz 然后将下载的压缩包随便放在和解压到你喜欢的地方. # t ...

  3. Scrapy爬虫学习笔记 - windows \ linux下搭建开发环境2

    四.虚拟环境的安装和配置 virtualenv可以搭建虚拟且独立的python运行环境, 使得单个项目的运行环境与其它项目独立起来. virtualenv本质上是个python包 虚拟环境可以将开发环 ...

  4. Scrapy爬虫学习笔记 - windows \ linux下搭建开发环境1

    一.pycharm的安装和简单使用                                   二.mysql和navicat的安装和使用    三.windows和linux下安装pytho ...

  5. 学习笔记12—linux下文件的复制、移动与删除

    查看centOS 版本     cat /etc/redhat-release 1,复制粘贴文件 cp  [选项]  源文件或目录  目标文件或目录 2,剪切粘贴文件 mv [选项]  源文件或目录 ...

  6. SNMP学习笔记之Linux下安装和配置SNMP

    注意:本篇安装用户是root,非root用户启动的时候会报缺少文件错误. 一.安装SNMP 1.1.下载Net-SNMP的源代码 选择一个SNMP版本,比如5.7.1,下载地址如下:http://so ...

  7. Redis学习笔记之Linux下Redis的安装和部署

    0x00 Redis介绍 Redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcache类似,但很大程度补偿了Memcache的不足,它支持存储的value类型相 ...

  8. linux基础内容学习一:linux下的分区及安装

    linux看系统版本信息 uname -a 如果显示为i386,i686则为32位系统,如果为x86_64则为64位 一块硬盘最多可以有四个主分区其中一个主分区可以用一个扩展分区替换,在这个扩展分区中 ...

  9. 学习笔记:Linux下共享内存的方式实现进程间的相互通信

    一.常用函数 函数系列头文件 #include <sys/types.h> #include <sys/ipc.h> #include <sys/shm.h> ft ...

随机推荐

  1. 【转】python+django+vue搭建前后端分离项目

    https://www.cnblogs.com/zhixi/p/9996832.html 以前一直是做基于PHP或JAVA的前后端分离开发,最近跟着python风搭建了一个基于django的前后端分享 ...

  2. SpringBoot整合Shiro实现基于角色的权限访问控制(RBAC)系统简单设计从零搭建

    SpringBoot整合Shiro实现基于角色的权限访问控制(RBAC)系统简单设计从零搭建 技术栈 : SpringBoot + shiro + jpa + freemark ,因为篇幅原因,这里只 ...

  3. hiho1393二分图多重匹配

    题目链接:[http://hihocoder.com/problemset/problem/1393] 题意:中文题意. 题解:二分图的多重匹配.主要是建图然后跑一个最带流,再判断一下就可以了. 建图 ...

  4. -【线性基】【BZOJ 2460】【BZOJ 2115】【HDU 3949】

    [把三道我做过的线性基题目放在一起总结一下,代码都挺简单,主要就是贪心思想和异或的高斯消元] [然后把网上的讲解归纳一下] 1.线性基: 若干数的线性基是一组数a1,a2,a3...an,其中ax的最 ...

  5. NOIP 2018 提高组初赛解题报告

    单项选择题: D 进制转换题,送分: D 计算机常识题,Python是解释运行的: B 常识题,1984年小平爷爷曰:“娃娃抓起”: A 数据结构常识题,带进去两个数据就可以选出来: D 历年真题没有 ...

  6. Codeforces 521 E cycling city

    cf的一道题,非常有意思,题目是问图中是否存在两个点,使得这两个点之间有三条路径,而且三条路径没有公共点. 其实就是判断一下是否为仙人掌就行了,如果不是仙人掌的话肯定就存在,题目难在输出路径上,改了半 ...

  7. NOIP2017 D2T3列队

    这题我改了三天,考场上部分分暴力拿了50,考完试发现与正解很接近只是没写出来. 对于每一行和最后一列建n+1颗线段树,维护前缀和. 复杂度qlogn 假如你移动一个坐标为(x,y)的人,你要将第x行线 ...

  8. USACO 2017 FEB Platinum mincross 可持久化线段树

    题意 上下有两个位置分别对应的序列A.B,长度为n,两序列为n的一个排列.当Ai == Bj时,上下会连一条边.你可以选择序列A或者序列B进行旋转任意K步,如 3 4 1 5 2 旋转两步为 5 2 ...

  9. redis实现简单延时队列(转)

    继之前用rabbitMQ实现延时队列,Redis由于其自身的Zset数据结构,也同样可以实现延时的操作 Zset本质就是Set结构上加了个排序的功能,除了添加数据value之外,还提供另一属性scor ...

  10. Codeforces Round #305 (Div. 1) A. Mike and Frog 暴力

     A. Mike and Frog Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/547/pr ...