如何使用GCC
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
预处理、编译、汇编、 链接
.i
.ii .s .S .h .o
预处理后的c语言源程序
预处理后的c++语言源程序 预处理后的汇编程序 未预处理的汇编程序 头文件 目标文件
编译、汇编、链接
编译、汇编、链接 汇编、链接 预处理、汇编、链接 不进行任何操作 链接
GCC执行过程
• 预处理(也称预编译,Preprocessing) • 编译(Compilation) • 汇编(Assembly) • 链接(Linking)。
gcc常用选项
选项
-c
含义
仅对源文件进行编译,不链接生成可执行文件。在对 源文件进行查错时,或只需产生目标文件时可以使用 该选项。 在可执行文件中加入调试信息,方便进行程序的调试。 如果使用中括号中的选项,表示加入gdb扩展的调试信 息,方便使用gdb来进行调试
-g[gdb]
-O[0、1、2、3]
使用GCC编译代码示例
示例源程序——hello.c #include <stdio.h> int main(void) { printf("hello gcc!\r\n"); return 0; }
一、预处理
处理宏定义和include,并做语法检查,生成预处理文件:
...... extern void funlockfile (FILE *__stream) ; # 679 "/usr/include/stdio.h" 3 # 2 "hello.c" 2 int main(void) { printf("hello gcc!\n"); return 0; }
• 生成可执行代码: • 命令: $gcc hello.c –o hello 运行程序 $./hello hello gcc!
THANKS
GCC的常用选项
gcc常用选项
选项 -o file 含义 将经过gcc处理过的结果存为文件file,这个结果文件可能 是预处理文件、汇编文件、目标文件或者最终的可执行文件。假 设被处理的源文件为source.suffix,如果这个选项被省略了, 那么生成的可执行文件默认名称为a.out;目标文件默认名为 source.o;汇编文件默认名为source.s;生成的预处理文件则发 送到标准输出设备。
如何使用GCC
GCC简介
GCC(GNU Compiler Collection,GNU编译器集合), 是一套由 GNU 开发的编程语言编译器。GCC原本是GNU 操作系统的官方编译,现已被大多数类Unix操作系统作 为标准的编译器,同样适用于微软的Windows。
GCC的使用
基本使用格式 : gcc [options] [filenames] 其中: options:编译器所需要的编译选项 filenames:要编译的文件名
对生成的代码使用优化,中括号中的部分为优化级别, 缺省的情况为2级优化,0为不进行优化。
-Dname[=definition] 将名为name的宏定义为definition,如果中括号中的部 分缺省,则宏被定义为1
GCC文件扩展名规范
gcc文件扩展名规范
扩展名
.c c语言源程序
类型
可进行的操作方式
二、编译
生成汇编代码:
...... main: pushl %ebp movl %esp, %ebp ........
addl movl leave ret ......"
$16, %esp $0, %eax
三、汇编
生成目标代码: 命令: $gcc –c hello.c –o hello.o
四、链接
.i
.ii .s .S .h .o
预处理后的c语言源程序
预处理后的c++语言源程序 预处理后的汇编程序 未预处理的汇编程序 头文件 目标文件
编译、汇编、链接
编译、汇编、链接 汇编、链接 预处理、汇编、链接 不进行任何操作 链接
GCC执行过程
• 预处理(也称预编译,Preprocessing) • 编译(Compilation) • 汇编(Assembly) • 链接(Linking)。
gcc常用选项
选项
-c
含义
仅对源文件进行编译,不链接生成可执行文件。在对 源文件进行查错时,或只需产生目标文件时可以使用 该选项。 在可执行文件中加入调试信息,方便进行程序的调试。 如果使用中括号中的选项,表示加入gdb扩展的调试信 息,方便使用gdb来进行调试
-g[gdb]
-O[0、1、2、3]
使用GCC编译代码示例
示例源程序——hello.c #include <stdio.h> int main(void) { printf("hello gcc!\r\n"); return 0; }
一、预处理
处理宏定义和include,并做语法检查,生成预处理文件:
...... extern void funlockfile (FILE *__stream) ; # 679 "/usr/include/stdio.h" 3 # 2 "hello.c" 2 int main(void) { printf("hello gcc!\n"); return 0; }
• 生成可执行代码: • 命令: $gcc hello.c –o hello 运行程序 $./hello hello gcc!
THANKS
GCC的常用选项
gcc常用选项
选项 -o file 含义 将经过gcc处理过的结果存为文件file,这个结果文件可能 是预处理文件、汇编文件、目标文件或者最终的可执行文件。假 设被处理的源文件为source.suffix,如果这个选项被省略了, 那么生成的可执行文件默认名称为a.out;目标文件默认名为 source.o;汇编文件默认名为source.s;生成的预处理文件则发 送到标准输出设备。
如何使用GCC
GCC简介
GCC(GNU Compiler Collection,GNU编译器集合), 是一套由 GNU 开发的编程语言编译器。GCC原本是GNU 操作系统的官方编译,现已被大多数类Unix操作系统作 为标准的编译器,同样适用于微软的Windows。
GCC的使用
基本使用格式 : gcc [options] [filenames] 其中: options:编译器所需要的编译选项 filenames:要编译的文件名
对生成的代码使用优化,中括号中的部分为优化级别, 缺省的情况为2级优化,0为不进行优化。
-Dname[=definition] 将名为name的宏定义为definition,如果中括号中的部 分缺省,则宏被定义为1
GCC文件扩展名规范
gcc文件扩展名规范
扩展名
.c c语言源程序
类型
可进行的操作方式
二、编译
生成汇编代码:
...... main: pushl %ebp movl %esp, %ebp ........
addl movl leave ret ......"
$16, %esp $0, %eax
三、汇编
生成目标代码: 命令: $gcc –c hello.c –o hello.o
四、链接