boost c++ library on linux 初体验

最近开始学习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文件的详细高级配置参见 http://www.cnblogs.com/ma6174/archive/2011/12/10/2283393.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: [email protected]
# 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++库的学习啦。

你可能感兴趣的:(C++,linux,File,vim,Path,library)