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教程中也有介绍。
用下面命令编译:
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中。代码如下:
如果还有些模块的ctag相对较大影响VIM编辑提示补全的速度,可以在.vimrc中将相应的行注释掉即可。这就是今天boost c++库入门的记录,配置好了基本的编辑环境,接下来就可以进入正式的boost c++库的学习啦。
首先,入门最好的材料就是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++库的学习啦。
相关文章推荐
- boost c++ lib on linux (1) - regex example with binary boost lib Regex
- linux安装mongo c++ driver,出现Checking for C++ library boost_thread-mt... no的解决办法
- boost c++ lib on linux(4) - thread同步条件变量学习——生产者消费者队列
- boost c++ lib on linux(2) - lexical_cast字符串数值转换
- boost c++ lib on linux(3) - thread库的使用初学
- boost c++ lib on linux(5) - 小练习——获取网页内容并提取有用信息
- LinuxC/C++编程基础(16) boost异步socket处理
- C++ 之Boost学习笔记--Linux下编程
- Setting static library in Eclipse C++ in Linux
- LinuxC/C++编程基础(21) 使用boost::asio搭建服务器简单实例(续)
- spserver - SPServer is a high concurrency server framework library written on C++ - Google Project Hosting
- Beyond the C++ Standard Library: An Introduction to Boost by Bjцrn Karlsson
- Beyond the C++ Standard Library: An Introduction to Boost
- Dynamic Class Loading for C++ on Linux
- Mac下boost的安装与使用 Install and use boost library on Mac
- 使用C++ Boost Graph Library 进行社交网络分析入门篇
- Eclipse IDE for C/C++ Developers include glib on linux
- 解决Visual C++ for Linux: -L"~/projects/path_to_lib_folder" 无法设置library search path的问题
- Build Xerces-C++ on UNIX/Linux platforms
- C++ Boost在Windows和Linux下的编译安装