C++编程学习环境搭建

工欲善其事,必先利其器。学习编程语言也一样,首先得搭建好编程学习环境。任何一门语言的学习之初,都应该搭建好环境且准备好学习文档,在遇到任何问题时能够及时查询文档,在不断的遇到问题、解决问题、遇到问题、解决问题中成长。当然,这也是一个经验积累的过程。

明年这个时候就该找工作了,于是打算学一下C++,首先想到的是要搭建编程环境及准备好C++帮助文档。我所使用的系统为Ubuntu,编程环境包括:gcc、g++、make,分别通过apt-get install安装即可。或者直接安装build-essential,它包含了一整套的工具。

安装语句如下:

apt-get install gcc

apt-get install g++

apt-get install make

第二部就是要准备C++帮助文档。GNU GCC 提供了一份 C++ 标准库的文档,可以在http://gcc.gnu.org/mirrors.html中下载。具体的路径是: libstdc++/doxygen/libstdc++-man-xxxxxx.tar.bz2,可找一个最新日期的下载。展开包之后将 man/man3 中的所有文件拷贝到系统上已经存在的一个 man/man3 目录中即可使用。如下语句所示:

tar xvf libstdc++-man.20111215.tar.bz2

cp -rf ./man3/* /usr/share/man/man3/

这样,C++的编程环境和帮助文档就安装好了。下面就可以开始C++语言Hello World的编写了。

C++语言的编译推荐使用Makefile进行编译。当然单个文件的编译可以g++ --help查看。假设有一个类A,其源文件为a.h和a.cpp以及一个调用A的main.cpp文件。首先应该对每一个Cpp文件进行单独编译,然后在链接为可执行文件。

g++ -c a.cpp    // 生成a.o

g++ main.cpp a.o  //生成可执行文件a.out

采用对每一个Cpp文件进行编译的方式在文件量比较少时还可以手动完成,当一个工程代码量逐渐变大,文件数目逐渐变多时,再这样手动完成编译或许就不那么容易了。好在Linux下有一个强大的make工具,能够协助程序猿完成代码的自动编译。下面来看一个简单的Makefile例子。Makefile文件应该和程序源文件在同一个目录。

  1. CC = g++  
  2. CPPFLAGS = -g -Wall  
  3. OBJS = main.o \  
  4.        item_base.o \  
  5.        bulk_item.o  
  6.   
  7. all : main  
  8. # 无视all文件存在与否,按正常的makefile语法解析   
  9. .PHONY : all  
  10.   
  11. # 使用所有的*.o文件生成可执行文件 $@表示main,$^表示$(OBJS)   
  12. main : $(OBJS)  
  13.     $(CC) -o $@ $^   
  14.   
  15. # 于任何.o为扩展名的文件相匹配,并且这些文件总是依赖于.cpp的文件   
  16. .cpp.o:  
  17.     $(CC) -c -o $@ $^ $(CPPFLAGS)  
  18.   
  19. clean:  
  20.     rm -rf *.o  
  21.     rm main  

这样仅需要在源程序的当前目录下执行make命令,就能够自动生成可执行文件代码main

以上Makefile文件所涉及的cpp源文件包括item_base.h、item_base.cpp、bulk_item.h、bulk_item.cpp和main.cpp文件,是C++ Primer里面的一个小例子。其关系是item_base是一个类,而bulk_item是item_base的派生类。main.cpp为一个包含main方法的cpp文件,表示程序的入口。

相关推荐