Linux编译器 GCC
2016-12-21 14:30
232 查看
GCC(GNU C Compiler)是GNU推出的功能强大、性能优越的多平台编译器,是GNU的代表作之一。GCC可以在多种硬体平台上编译出可执行程序,其执行效率与一般的编译器相比平均效率要高20%~30%。
options:编译器所需要的编译选项
filenames: 要编译的文件名
GCC编译器能将C/C++语言源程序、汇编程序形成可执行文件。整个形成过程可以被细分为四个阶段:
.a为后缀的文件: 是由目标文件构成的库文件(静态库)
.C,.cc或.cxx 为后缀的文件: 是C++源代码文件
.h为后缀的文件: 头文件
.o为后缀的文件: 是编译后的目标文件
.s为后缀的文件: 是汇编语言源代码文件
-o output_filename:确定可执行文件的名称为output_filename。如果不给出这个选项,gcc就给出预设的可执行文件a.out。
-O,对程序进行优化编译、链接,采用这个选项,整个源代码会在编译、连接过程中进行优化处理,这样产生的可执行文件的执行效率可以提高,但是,编译、连接的速度就相应地要慢一些。
-O2,比-O更好的优化编译、连接,当然整个编译、连接过程会更慢。
-c:只编译不链接。编译器只是由输入的.c等源代码文件编译生成.o为后缀的中间文件。
-g:产生调试工具(GNU的gdb)所需要的符号
信息,要想对编译出的程序进行调试,就必须
加入这个选项。
-I dirname: 将dirname所指出的目录作为编译器寻找头文件的标准路径。
C程序中的头文件包含以下两种情况∶
对于<>,gcc在系统预设的头文件目录(如/usr/include)中搜寻相应的文件;而对于””,gcc在当前目录中搜寻头文件。-I选项的作用是告诉gcc,如果在当前目录中没有找到需要的文件,就到指定的dirname目录中去寻找。
例:gcc foo.c -I /home/include -o foo
-Wall:生成所有警告信息
-w:不生成任何警告信息
编译错误与编译警告都是我们的程序设计中经常遇到的问题. 编译错误一般是代码中出现语法错误,程序无法编译执行,必须修改. 编译警告是编译器发现程序中不合理的地方(比如类型不匹配),建议最好修改,但不修改也可以编译执行。
-D[定义宏的名字]:定义宏。例如:-DMACRO: 定义 MACRO 宏,等效于在程序中使用
#define MACRO
GCC最基本的用法
gcc [options] filenamesoptions:编译器所需要的编译选项
filenames: 要编译的文件名
GCC编译器能将C/C++语言源程序、汇编程序形成可执行文件。整个形成过程可以被细分为四个阶段:
GCC文件类型
.c为后缀的文件: C语言源代码文件.a为后缀的文件: 是由目标文件构成的库文件(静态库)
.C,.cc或.cxx 为后缀的文件: 是C++源代码文件
.h为后缀的文件: 头文件
.o为后缀的文件: 是编译后的目标文件
.s为后缀的文件: 是汇编语言源代码文件
GCC编译选项
掌握GCC的使用方法,最重要的是掌握GCC的编译选项,GCC编译器的编译选项大约有100多个,其中多数我们根本就用不到,这里只介绍其中最基本、最常用的参数。-o output_filename:确定可执行文件的名称为output_filename。如果不给出这个选项,gcc就给出预设的可执行文件a.out。
-O,对程序进行优化编译、链接,采用这个选项,整个源代码会在编译、连接过程中进行优化处理,这样产生的可执行文件的执行效率可以提高,但是,编译、连接的速度就相应地要慢一些。
-O2,比-O更好的优化编译、连接,当然整个编译、连接过程会更慢。
-c:只编译不链接。编译器只是由输入的.c等源代码文件编译生成.o为后缀的中间文件。
-g:产生调试工具(GNU的gdb)所需要的符号
信息,要想对编译出的程序进行调试,就必须
加入这个选项。
-I dirname: 将dirname所指出的目录作为编译器寻找头文件的标准路径。
C程序中的头文件包含以下两种情况∶
#include <A.h> #include “B.h”
对于<>,gcc在系统预设的头文件目录(如/usr/include)中搜寻相应的文件;而对于””,gcc在当前目录中搜寻头文件。-I选项的作用是告诉gcc,如果在当前目录中没有找到需要的文件,就到指定的dirname目录中去寻找。
例:gcc foo.c -I /home/include -o foo
-Wall:生成所有警告信息
-w:不生成任何警告信息
编译错误与编译警告都是我们的程序设计中经常遇到的问题. 编译错误一般是代码中出现语法错误,程序无法编译执行,必须修改. 编译警告是编译器发现程序中不合理的地方(比如类型不匹配),建议最好修改,但不修改也可以编译执行。
-D[定义宏的名字]:定义宏。例如:-DMACRO: 定义 MACRO 宏,等效于在程序中使用
#define MACRO
相关文章推荐
- linux编译器 GCC 4.3.0已经发布
- Linux添加环境变量与GCC编译器添加INCLUDE与LIB环境变量
- Linux下gcc编译器的安装、故障排除
- linux下gcc编译器的使用
- Linux添加环境变量与GCC编译器添加INCLUDE与LIB环境变量
- Linux上安装GCC编译器
- Linux添加环境变量与GCC编译器添加INCLUDE与LIB环境变量
- gcc - 用于linux系统下编程的编译器
- linux 源码安装gcc编译器
- Linux 下的 gcc, g++ 编译器
- Linux下编程工具的使用(2) - GCC编译器
- Linux添加环境变量与GCC编译器添加INCLUDE与LIB环境变量
- Linux添加环境变量与GCC编译器添加INCLUDE与LIB环境变量
- linux下gcc编译器的使用(网上转载)
- Linux添加环境变量与GCC编译器添加INCLUDE与LIB环境变量
- Linux系统下C编译器 — gcc 入门
- Linux上安装 GCC 编译器过程
- Linux添加环境变量与GCC编译器添加INCLUDE与LIB环境变量
- Linux下gcc编译器的安装、故障排除
- 虚拟机linux下安装 arm-linux-gcc 编译器