暖光 计算,改变您的现在 提纲 ·1.GCC编译 ·2.Make简介 2/17
2/17 提 纲 • 1. GCC编译 • 2. Make简介
%暖兴 计算,改变您的现在 DAWNING 一个简单的例子一hello.c ·用vi编写源文件: #include <stdio.h> void main() printf("hello world.\n"); } ·用gcc编译 gcc hello.c ·运行 a.out 3/17
3/17 一个简单的例子—hello.c • 用vi编写源文件: #include <stdio.h> void main() { printf(“hello world.\n”); } • 用gcc编译 gcc hello.c • 运行 a.out
%曙光 计算,改变您的现在 GCC简介(1/2) ● gcc(GNW,Compliler Collection)是GNU推出的功能 强大、性能优越的多平台编译器,是GU的代表作品之 0 gcc编译器能将C、,Fortran,C+语言源程序、汇程式化 序和自标程序编译、连接成可执行文件,如果没有给 可执行文件的名字,gcc将生成一个名为a.out的文 件 gcc最基本的用法是: gcc [options][filenames] 其中options.就是编译器所需要的参数,filenames给出相关的文 件名称 4/17
4/17 GCC简介(1/2) • gcc(GNU Compliler Collection)是GNU推出的功能 强大、性能优越的多平台编译器,是GNU的代表作品之 一。 • gcc编译器能将C、Fortran,C++语言源程序、汇程式化 序和目标程序编译、连接成可执行文件,如果没有给 出可执行文件的名字,gcc将生成一个名为a.out的文 件。 • gcc最基本的用法是∶ gcc [options] [filenames] 其中options就是编译器所需要的参数,filenames给出相关的文 件名称
曙光 计算,改变您的现在 DAWNING GCC简介(2/2) ·在Linux.系统中,可执行文件没有统一的后缀,系统从 文件的属性来区分可执行文件和不可执行文件。 ·而gcc则通过后缀来区别输入文件的类别 -·c为后缀的文件,C语言源代码文件 -.f为后缀的文件,Fortran77语言源代码文件 -.f90为后缀的文件,Fortran90语言源代码文件 -.C,·cc或.cxx为后缀的文件,是C++源代码文件 -·h为后缀的文件,是程序所包含的头文件 一·o为后缀的文件,是编译后的目标文件,也是静态库文件 ··so为后缀的文件,动态库文件 -.a为后缀的文件,是由目标文件构成的档案库文件 5/17
5/17 GCC简介(2/2) • 在Linux系统中,可执行文件没有统一的后缀,系统从 文件的属性来区分可执行文件和不可执行文件。 • 而gcc则通过后缀来区别输入文件的类别 –.c为后缀的文件,C语言源代码文件 –.f为后缀的文件,Fortran77语言源代码文件 –.f90为后缀的文件,Fortran90语言源代码文件 –.C,.cc或.cxx 为后缀的文件,是C++源代码文件 –.h为后缀的文件,是程序所包含的头文件 –.o为后缀的文件,是编译后的目标文件,也是静态库文件 –.so为后缀的文件,动态库文件 –.a为后缀的文件,是由目标文件构成的档案库文件
%曙光 计算,改变您的现在 GCC常用编译参数(1/3) -℃:只编译,不连接成为可执行文件, 编译器只是由输入的.c等 源代码文件生成.0为后缀的目标文件,通常用于编译不包含主程 序的子程序文件。 ● -o output filename:确定输出文件的名称为output filename, 同时这个名称不能和源文件同名。如果不给出这个选项,gcC就给 出预设的可执行文件a.out。 -g:产生符号调试工具(GNU的gdb)所必要的符号资讯,要使用gdb 对源代码进行调试,我们就必须加入这个选项。 ·-0:对程序进行优化编译、连接,采用这个选项,整个源代码会 在编译、连接过程中进行优化处理,这样产生的可执行文件的执 行效率可以提高,但是,编译、连接的速度就相应地要慢一些。 -02:比-0更好的优化编译、连接,当然整个编译、连接过程会更 慢。 6/17
6/17 GCC常用编译参数(1/3) • -c:只编译,不连接成为可执行文件,编译器只是由输入的.c等 源代码文件生成.o为后缀的目标文件,通常用于编译不包含主程 序的子程序文件。 • -o output_filename:确定输出文件的名称为output_filename, 同时这个名称不能和源文件同名。如果不给出这个选项,gcc就给 出预设的可执行文件a.out。 • -g:产生符号调试工具(GNU的gdb)所必要的符号资讯,要使用gdb 对源代码进行调试,我们就必须加入这个选项。 • -O:对程序进行优化编译、连接,采用这个选项,整个源代码会 在编译、连接过程中进行优化处理,这样产生的可执行文件的执 行效率可以提高,但是,编译、连接的速度就相应地要慢一些。 • -O2:比-O更好的优化编译、连接,当然整个编译、连接过程会更 慢