一、GCC与gcc介绍
1.GCC是由GNU之父Stallman所开发的Linux下的编辑器,GCC最初的全名是CNU project C and C++,之后随着GCC支持的语言越来越多,其全称变为 CNU Compiler Collection即GNU编译器集合。目前可以编译的语言包括:C,C++,Objective-C,Fortran,Java,and Ada
2.gcc是GCC编译器集合下的c编译器。(g++则是c++编译器)gcc编译器主要用于编译C和C++程序,编译C++程序时常使用g++命令,实际上是gcc连接了libstdc++库。当前主要了解gcc的使用。
二、gcc的使用
1.使用环境
使用gcc要在Linux环境下,可以使用真正的Linux系统,或者使用一些Windows下的虚拟软件(基础学习阶段推荐),可以使用虚拟机搭建的Linux环境。(目前我所使用的是CentOS 6.5)
2.gcc与g++的安装
安装之前可以使用 gcc -v 命令查询系统GCC版本。(以此查看之前是否有安装过)
CentOs 6.5 中gcc与g++的安装:
注意安装时要是以root用户来执行命令。
安装gcc:yum install gcc
安装g++:yum install gcc-c++
安装过后再次查看安装情况:
3.文件命名规则
在Linux下生成的可执行文件没有固定的扩展名。任何符合Linux要求的文件名,只要文件的访问属性中有可执行的属性,该文件就是可以执行的。所以可执行文件没有同意后缀没有统一后缀,系统通过文件属性来区分可执行文件和不可执行文件。而gcc则通过后缀来区分输入文件的类别,下面介绍gcc所遵循的部分约定规则。
- 以.c为后缀的文件,C语言源代码文件;
- 以.a为后缀的文件,是由目标文件构成的库文件;
- 以.C,.cc或.cxx为后缀的文件,是C++源码文件;
- 以.h为后缀的文件,是程序所包含的头文件;
- 以.i为后缀的文件,是是已经与处理过的C源代码文件;
- 以.m为后缀的文件,是Objective-C源代码文件;
- 以.o为后缀的文件,是编译后的目标文件;
- 以.s为后缀的文件,是汇编语言源代码文件;
- 以.S为后缀的文件,是经过预编译的汇编语言源代码文件。
4.编译过程
Gcc编译器在编译时,都需要用四个步骤里的一个或多个处理输入文件,这四个步骤是:预处理(Pre-Processing)、编译(Compilation)、汇编(Assembly)、连接(Linking)。在这个过程中,源文件的后缀名控制着编译器的缺省设定,这个后缀指示出了程序代码所用语言。
5.gcc的使用
命令格式:gcc [选项] [要处理的文件列表] [-o 目标文件]
其中被[],引出来的三部分,顺序可以变换,除了要处理文件列表是必须要有的,其它可以不写。下面通过一个简单的例子,说明gcc的使用方法。
步骤:
(1)编写一个简单的C语言程序hello.c
# vi/vim hello.c
代码内容
(2)编译hello.c文件,生成可执行文件
# gcc hello.c
(3)执行文件,在默认情况下产生的可执行程序名为:a.out
# ./a.out
执行结果
(4)通常可以通过gcc的”-o” 选择来指定自己的执行程序名称
# gcc -o name hello.c
生成可执行文件 name 执行
# ./name