boost 安装目录 linux,Linux编译和安装boost库(示例代码)

1. 下载boost安装包并解压缩

到http://www.boost.org/下载boost的安装包,以boost_1_58_0.tar.gz为例

下载完成后进行解压缩:

tar zxvf boost_1_58_0.tar.gz

1

2.设置编译器和所选库

先进入解压缩后的目录:

cd boost_1_58_0

1

然后运行bootstrap.sh脚本并设置相关参数:

./bootstrap.sh --with-libraries=all --with-toolset=gcc

1

--with-libraries指定编译哪些boost库,all的话就是全部编译,只想编译部分库的话就把库的名称写上,之间用 , 号分隔即可,可指定的库有以下几种:

库名说明

atomic

chrono

context

coroutine

date_time

exception

filesystem

graph图组件和算法

graph_parallel

iostreams

locale

log

math

mpi用模板实现的元编程框架

program_options

python把C++类和函数映射到Python之中

random

regex正则表达式库

serialization

signals

system

test

thread可移植的C++多线程库

timer

wave

--with-toolset指定编译时使用哪种编译器,Linux下使用gcc即可,如果系统中安装了多个版本的gcc,在这里可以指定gcc的版本,比如--with-toolset=gcc-4.4

命令执行完成后看到显示如下即为成功:

Building Boost.Build engine with toolset gcc... tools/build/src/engine/bin.linuxx86_64/b2

Detecting Python version... 2.6

Detecting Python root... /usr

Unicode/ICU support for Boost.Regex?... not found.

Generating Boost.Build configuration in project-config.jam...

Bootstrapping is done. To build, run:

./b2

To adjust configuration, edit ‘project-config.jam‘.

Further information:

- Command line help:

./b2 --help

- Getting started guide:

http://www.boost.org/more/getting_started/unix-variants.html

- Boost.Build documentation:

http://www.boost.org/build/doc/html/index.html

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

3.编译boost

执行以下命令开始进行boost的编译:

./b2 toolset=gcc

1

编译的时间大概要10多分钟,耐心等待,结束后会有以下提示:

...failed updating 60 targets...

...skipped 21 targets...

...updated 663 targets...

1

2

3

4.安装boost

最后执行以下命令开始安装boost:

./b2 install --prefix=/usr

1

--prefix=/usr用来指定boost的安装目录,不加此参数的话默认的头文件在/usr/local/include/boost目录下,库文件在/usr/local/lib/目录下。这里把安装目录指定为--prefix=/usr则boost会直接安装到系统头文件目录和库文件目录下,可以省略配置环境变量。

安装完毕后会有以下提示:

...failed updating 60 targets...

...skipped 21 targets...

...updated 11593 targets...

1

2

3

最后需要注意,如果安装后想马上使用boost库进行编译,还需要执行一下这个命令:

ldconfig

1

更新一下系统的动态链接库

5.boost使用测试

以boost_thread为例,测试刚安装完的boost库是否能正确使用,测试代码如下:

#include //包含boost头文件

#include

#include

using namespace std;

volatile bool isRuning = true;

void func1()

{

static int cnt1 = 0;

while(isRuning)

{

cout << "func1:" << cnt1++ << endl;

sleep(1);

}

}

void func2()

{

static int cnt2 = 0;

while(isRuning)

{

cout << "func2:" << cnt2++ << endl;

sleep(2);

}

}

int main()

{

boost::thread thread1(&func1);

boost::thread thread2(&func2);

system("read");

isRuning = false;

thread2.join();

thread1.join();

cout << "exit" << endl;

return 0;

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

在编译程序时,需要加入对boost_thread库的引用:

g++ main.cpp -g -o main -lboost_thread

1

如果boost库的安装位置不是在系统目录下,则还需要在编译时加上-I和-L指定boost头文件和库文件的位置

编译成功后运行程序,利用boost实现的多线程任务正确运行:

func1: func2:00

func1:1

func2:1

func1:2

func1:3

func2:2

func1:4

func1:5

func2:3

func1:6

func1:7

func2:4

func1:8

func1:9

func2:5

func1:10

func1:11

func2:6

func1:12

func1:13

func2:7

func1:14

func1:15

func2:8

func1:16

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值