Linux下boost_1_49_0 安装以及相关问题解决

在linux下安装boost_1_49
相关系统信息:ubantu12.04LTS ,boost_1_49_0

1. 下载boost库,到官网上下即可。http://www.boost.org/
下载完解压即可

2. 权限设置:

我在安装的过程中出现了如下问题:权限不够

administrator@ubuntu:~/source/boost_1_49_0$ ./bootstrap.sh
bash: ./bootstrap.sh: Permission denied

给予其权限:
chmod +x ./bootstrap.sh

在运行的过程中,又出现权限不足的问题,继续给予权限
administrator@ubuntu:~/source/boost_1_49_0$ ./bootstrap.sh
./bootstrap.sh: 1: ./bootstrap.sh: ./tools/build/v2/engine/build.sh: Permission denied

administrator@ubuntu:~/source/boost_1_49_0/tools/build/v2/engine$ chmod +x  ./build.sh


3. 编译生成boost的编译引擎

有了足够的权限后,就可以运行bootstrap.sh:编译生成boost的编译引擎

administrator@ubuntu:~/source/boost_1_49_0$ ./bootstrap.sh 
Building Boost.Build engine with toolset gcc... tools/build/v2/engine/bin.linuxx86/b2
Detecting Python version... 2.7
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/boost-build2/doc/html/index.html

其编译了boost的编译引擎(bjam/b2)。


4. 开始编译boost程序

administrator@ubuntu:~/source/boost_1_49_0$ ./bjam --prefix==./prefix/install
Building the Boost C++ Libraries.


5. 安装boost

administrator@ubuntu:~/source/boost_1_49_0$ ./b2 install

在安装的时候,即拷贝BOOST生成的文件,又出现了许多权限问题,见控制台输出:

...failed common.copy /usr/local/lib/libboost_thread.a...
common.copy /usr/local/lib/libboost_timer.a
cp: cannot create regular file `/usr/local/lib/libboost_timer.a': Permission denied 

所以就输入了如下命令:
administrator@ubuntu:~/source/boost_1_49_0$ sudo ./b2 install

增加了权限后,文件确实拷贝成功,放于usr/local/....目录下,但是使用的时候还是说没有权限使用boost,所以直接将普通用户设置为root权限

administrator@ubuntu:~$ sudo vi /etc/passwd
administrator:x:0:0:Administrator,,,:/home/administrator:/bin/bash

  注销重新登录后,
root@ubuntu:~/source/ThreadPool# g++ -c Thread.cpp -o Thread

Thread类中可是使用到了boost中的文件的哈
#include <pthread.h>
#include <string>
#include <boost/function.hpp>
#include <boost/bind.hpp>

 

注:其实要是一开始就设置成root用户,前面那些操作压根就不会有什么权限方面的问题哈。读者在使用的时候建议先设置权限,避免其中的关于权限的问题。

参考:http://www.eifr.com/article.php?id=743&act=print

你可能感兴趣的:(linux,boost)