ubuntu 10.10下 boost1.46.1编译

Posted on 2011-04-06 13:15 ZLD 阅读(2351) 评论(5)  编辑 收藏 引用 所属分类: boost
      作为一个ubuntu新手,对于好多东西都折腾的很辛苦,花了好多时间,而且过程非常艰辛,所以总结了一下网上的一些资料写了这篇文章作为笔记,希望可以给新手们带来一些启发.........
 


1.从boost官网下载boost 1.46.1

2.执行 apt-get install build-essential (目的是为了安装好象gcc,g++等一些工具进行编译)
      注:我是在root用户下进行的操作,普通用户执行 sudo apt-get install build-essential

3.解压boost库到/usr/share/
      將下载好的boost 1.46.1.tar.gz(我用的是这个版本) 复制到/usr/share/目录下,然后解压,会自动生成一个boost_1_46_1这个文件夹(或者用命令解压,这里就不提了,可以自己去查解压命令)

4.编译bjam(这个东东是用来编译boost库的)
      编译之前先做如下操作,由于这版本是编译msvc版的bjam,我们把它改成gcc版的bjam......
      进入boost1.46.1解压目录找到bootstrap.bat 用记事本打开,然后修改:
      第13行將call .\build.bat > ..\..\..\bjam.log 改为call .\build.bat gcc > ..\..\..\bjam.log
     第33行將set toolset=msvc改为set toolset=gcc
     保存退出,然后双击bootstrap.sh在终端中执行,稍等片刻会在boost_1_46_1中生成bjam
5.编译boost库: 在终端中进入/usr/share/boost_1_46_1目录
     在终端中输入 cd /usr/share/boost_1_46_1
     然后我在root用户下输入 ./bjam toolset=gcc --layout=tagged --build-type=complete stage进行完全编译
     (普通用户的话执行:sudo ./bjam toolset=gcc --layout=tagged --build-type=complete stage )
      经过漫长的等 待,命令执行完毕后,将会生成所有版本的库,并存储在:
         /usr/share/boost_1_46_1/stage
6.boost 已经编译好了,下面调用boost库
    1.在/usr/include/下生成一个boost库的include文件夹连接:
       ln -s /usr/share/boos t_1_46_1/boost /usr/include/boost
    2.在/usr/lib/ 下生成所有boost编译出的lib库文件的对应连接 切换到stage目录下,执行
       find $PWD/lib/*.* -type f -exec ln -s {} /usr/lib/ \;
       (普通用户执行: sudo find $PWD/lib/*.* -type f -exec ln -s {} /usr/lib/ \; )

执行完以上操作就算ok了
      

     

    

 

Feedback

# re: ubuntu 10.10下 boost1.46.1编译[未登录]  回复  更多评论   

2011-04-06 16:23 by jc
bjam有一个install的命令,可以把boost的头文件和库文件复制到/usr/local/lib下

# re: ubuntu 10.10下 boost1.46.1编译  回复  更多评论   

2011-04-15 22:47 by sunoom
你好,请问按照你这种方式编译完毕后如何使用boost? 可否举个例子说下 #include<*> *应当怎么写? 多谢。

# re: ubuntu 10.10下 boost1.46.1编译  回复  更多评论   

2011-04-18 17:54 by 亡灵
#include <boost/thread.hpp>

# re: ubuntu 10.10下 boost1.46.1编译  回复  更多评论   

2011-04-19 13:51 by ZLD
@sunoom
就象楼上说的那个格式,这是在网上找到的代码:
#include <boost/lambda/lambda.hpp>
#include <iostream>
#include <iterator>
#include <algorithm>
int main()
{
using namespace boost::lambda;
typedef std::istream_iterator<int> in;
std::for_each(
in(std::cin), in(), std::cout << (_1 * 3) << " " );
}

运行后输入1 2 3 结果为3 6 9

# re: ubuntu 10.10下 boost1.46.1编译  回复  更多评论   

2011-04-19 13:56 by ZLD
@jc
多谢指点,不过对于bjam的install 命令不是很了解,还请详说

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理


posts - 1, comments - 5, trackbacks - 0, articles - 0

Copyright © ZLD