本文进行对C++编译环境说明介绍,但是首先在编译前,首先遇到的就是环境问题,这个问题大大的影响了编程人员和技术人员的工作效率,那么本文给大家讲述一下令人头疼的C++编译问题。
源程序作为解释器输入,解释器可能会把程序转换为内部的合适的形式,以取得更大的运行速度。解释器的工作更像人类自身的工作,它处理字符串,并赋于字符串以意义,常见的解释程序都是脚本语言,如PHP、Perl、ASP和bash等等。
编译程序
什么是编译程序?编译程序和解释程序一样,是程序运行的一种方式,但却又与解释程序是不同的运行方式。解释程序是边解释边执行,而编译程序是编译之后多次执行。比喻来说,我们像一条鱼,解释器会找来一条鱼给你,而编译器却会把一个网给你,要鱼的话自己捉去。
源程序是编译器的输入,编译器把源程序经过分析与处理最终转换成一个可直接执行的二进制程序。二进制程序是机器可以直接理解并执行的指令与数据集,此时我们只需要简单把程序装载内存,并把CPU的控制交给它就可以了。
一般来解释程序会比编译程序慢许多,因为解释需要多次进行,而编译却只是一次进行,所以会省下许多时间。C++和C语言都典型的编译程序,随着计算机硬件的发展,现代的解释型程序越来越成功和强大,并且已经形成一个很强大的竞争。
C++编译环境
C++是一种编译程序,那么C++的源程序到C++二进制程序的转换过程是由哪个工具来完成的呢?这个工具就是C++编译器,正如上面据说的,C++编译器读取源程序,在经过分析与处理之后生成可运行的二进制程序。
C++编译器及相关工具构成C++编译环境,C++编译环境可能还存在其它的工具,比如预处理器、编辑器、设计器等等。事实上存在非常多的编译环境,这些编译环境各不同,有的非常先进,有的可能注重易用性。
本手册自始至终都使用GNU Compiler Collection(GCC)来完成我们工作,GCC是一组编译器集合,它不仅有C++编译器g++,还有其它的编译器或解释器。它是自由和开放,全世界的人都应该使用它,所以也就使用它了。
除了g++之外,还存在intel C++ compiler、IBM C++ compiler,当然还最臭名照著了Microsoft Visual C++。它们三个都商业软件,intel公司关注自身平台,所以它的编译器可能只能运行在自身平台之上,当然这种关注使得它在自身平台有许多的优势,比如编译出来的程序更快等。C++的最初创始人Bjarne Stroustrup维护了一个C++编译器列表,大家可以过去看看。
在示例中,每个程序都非常简单,在Linux中使用g++来完成编译与测试。关于g++更多的内容我们可能在以后的章节有所涉及,但是不会有大量篇幅,因为在这里讲述的是C++,而不是g++。如果实在无法离开Windows,这里有一个替代方案。
可以下载并安装Code::Blocks,它是一个跨平台的IDE环境,此时你可以不得不先去熟悉这个IDE环境要编译我们上一节写作的“hello_world.cpp”程序,其实很简单,只要我们在命令行中使用,
就可以了。在运行上述命令之后,将生成一个叫做“hello”的可执行程序,为了要运行它,我们需要在命令行中使用: 这个命令就是运行刚才生成的程序的命令,注意在“hello”之前的“./”,这表示是当前目录下的“hello”。 大家可以已经注意到了,这里我会使用大量命令行相关的内容,如果你对这个不熟悉,你应该先去熟悉也命令行相关的内容。
【编辑推荐】