您的位置:首页 > 运维架构 > Linux

boost c++ library on linux 初体验

2012-07-22 22:42 531 查看
最近开始学习boost c++ library,并且打算用业余的时间长期坚持下去。再一个就是通过学习boost库练习在linux下面进行c++编程。今天记录一下boost的入门吧。

首先,入门最好的材料就是boost官方网站上面的文档,在什么平台上,怎么开始都说的很清楚,而且很有条理,过程清晰。

boost的库的压缩包直接可以从boost的官网上下载得到,下载后直接用unzip命令解压到/usr/local/目录下面,由于/usr/local目录已经被添加在PATH环境变量里面,所以在使用boost的不许要单独编译的模块时,直接可以通过#include <boost/xxx/xxx.hpp>即可引入,下面的helloworld实例即是如此。有部分模块需要单独编译,在Getting started教程中也有介绍。

hello world boost lib

首先接触的当然是hello world程序:
#include <boost/lambda/lambda.hpp>
#include <iostream>
#include <iterator>
#include <algorithm>

using namespace std;

int main()
{
using namespace boost::lambda;
typedef std::istream_iterator<int> in;
std::for_each(
in(std::cin), in(), std::cout << (_1*3) << " ");
std::cout<<std::endl;
return 0;
}


用下面命令编译:
g++ -I /usr/local/boost_1_50_0/ /home/liuxin/workspace/develop/boost/helloworld/hello.cpp -o hello


工欲善其事,必先利其器

学完hello world,感觉用VIM写C++比较吃力的地方就是自动补全和提示功能不好搞,于是研究了下VIM的自动补全配置方法。主要就是OminCppComplete插件,ctag两个工具,然后配置自己主目录下面的.vimrc文件。具体.vimrc文件的详细高级配置参见/article/4886241.html,C++代码补全功能的详细教程在VIM的官网的wiki页面里有详细步骤,详见http://vim.wikia.com/wiki/C++_code_completion。总的来说,具体步骤如下:
1、先配置好.vimrc的基本代码编辑辅助功能,例如代码高亮,缩进等等,如果觉得麻烦可以直接找一个强大配置直接拷贝至.vimrc文件当中。
2、下载安装ctag工具
3、按照VIM官网的配置方法配置OminCppComplete插件
其中在配置boost库的自动补全会遇到一个很棘手的问题就是:ctag根据boost库的头文件生成的ctag文件有1G多大,在VIM编辑器补全时会很慢,根本无法继续编程。其主要原因是有些模块的ctag文件太大了,最好是能够单独生成ctag文件然后将其配置到.vimrc文件中。比如说typeof文件夹下面生成的ctag文件大小就有1G,只能放弃这个文件夹,还有fusion,phonix等文件夹生成的ctag文件都很大,上百兆。因此我写了一个配置.vimrc中boost补全的配置shell脚本,根据boost库下面的文件夹情况,自动调用ctag命令生成tag文件,并配置到.vimrc中。代码如下:
#########################################################################
# File Name: boost-ctags-generator.sh
# Author: Liu Xin
# mail: liu_x_0625@126.com
# Created Time: 2012年07月22日 星期日 20时31分35秒
#########################################################################
#!/bin/bash

boost_path=/usr/local/boost_1_50_0/boost/;
for name in `ls $boost_path`
do
#echo $name;

if [ -d "$boost_path""$name" ] && [ $name != "typeof" ] ;
then
#echo $name;
sub_path="$boost_path""$name";
ctag_file="~/.vim/tags/""$name";
echo $ctag_file;
echo $sub_path;
cd ~/.vim/tags;
if [ ! -x $ctag_file ];
then
ctags -R --sort=1 --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++ -f "$name" "$sub_path";
fi

vimrc=`cat ~/.vimrc`;
#echo $vimrc;
echo "\n""set tags+=""$ctag_file" >> ~/.vimrc;
#return;
fi
done


如果还有些模块的ctag相对较大影响VIM编辑提示补全的速度,可以在.vimrc中将相应的行注释掉即可。这就是今天boost c++库入门的记录,配置好了基本的编辑环境,接下来就可以进入正式的boost c++库的学习啦。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: