1.gcc编译器
(1)程序的编译过程
在使用gcc编译程序时,编译过程可以分为4个阶段:
a.预处理(pre-processing)
b.编译(compiling)
c.汇编(assembing)
d.链接(linking)
(2)在功能上,预处理,编译,汇编是三个不同的阶段
a.在预处理阶段,输入的是C语言的源文件,通常为*.c或*.C.它们一般带有*.h之类的头文件。这个阶段主要处理
源文件中的#ifdef,#include,#define预处理命令。该阶段会生成一个中间文件*.i文件。
gcc -E tiger.c -o test.i
它通过对源文件tiger.c使用E选项来生成中间文件tiger.i
b.在编译阶段,输入的是中间文件*i,编译后生成汇编语言文件*s.这个阶段对应的gcc命令为:
gcc -S tiger.i -o tiger.s
c.在汇编阶段,将输入的汇编文件*.s转换成二进制机器代码*.o。这个阶段对应的gcc命令为:
gcc -c tiger.s -o tiger.o
d.最后,在链接阶段将输入的二进制机器代码文件*.o(于其他的机器代码文件和库文件)汇集成一个可执行的二进制代码文件。这个阶段使用的命令为:
gcc tiger.o -o tiger
最后生成了可执行文件tiger。
(3)对于上述过程可以简化为:
gcc tiger.c -o tiger
(4)在实际开发中,使用gcc编译源程序时,源文件通常不止一个,这时就需要使用gcc编译多个源文件。使用下面的命令即OK
gcc -o tiger tiger1.c tiger2.c tiger3.c
该命令同时编译3个源文件tiger1.c tiger.c tiger3.c,最后生成一个可执行程序tiger。
注意:一个程序无论是只有一个源文件还是多个源文件,在所有被编译和链接的源文件中必须有且只有一个main函数,因为main函数是每一个程序的入口点。
3.gcc 的常用选项
(1)gcc 的基本用法
gcc [options] [filenames]
其中options就是编译器所需要的选项,filenames给处相关的文件名
a. -c :只编译,不链接成课执行文件,编译器只是由输入的.c等为后缀的源代码文件生成.o为后缀的目标文件,通常用于编译不包含主程序的子程序文件。
b. -o output_filename:确定输出文件的名称为output_filename,如果不用该选项,gcc就默认为源文件名.o文件。
c. -g:产生调试器gdb所必需的符号信息,要对源代码进行调试,就必须在编译程序时加入这个选项。
d. -O:对程序进行优化编译,链接,采用这个选项,整个源代码会在编译,链接过程中进行优化处理,这样产生的可执行文件的执行效率较高,但是,编译,链接
的速度就相应地要慢一些。
e. -O2:比-O更好的优化编译,链接,当整个编译,链接过程会更慢
f.-Wall
分享到:
相关推荐
gcc源代码的总结主要包括语法树的操作,和对程序的解析。
gcc manual gcc手册 gcc manual gcc手册 gcc manual gcc手册 gcc manual gcc手册
gcc、gcc++ 离线安装包
gcc各版本文档,具体包括: gcc11_2、gcc10_3、gcc9_4、gcc8_5、gcc7_5、gcc6_5、gcc5_5、gcc4_9_4、gcc4_8_5、gcc4_7_4、gcc4_6_4、gcc4_5_4、gcc4_4_7、gcc4_3_6、gcc4_2_4、gcc4_1_2、gcc4_0_4、gcc3_4_6
离线安装GCC与GCC-C++
1.最近有离线安装redis6+的需要...2.内含gcc的依赖,总结的构建命令; 3.gcc构建过程极其耗时1h+; 4.gcc构建存储空间6G+,虚拟机的小伙伴注意剩余存储空间,免走我的空间问题的坑; 5.积分下载,总结不易,感谢支持。
从mini安装版centos7.5提取出来的gcc和gcc-c++安装包,下载后放到服务器解压,并cd到该目录,执行 rpm -Uvh *.rpm,安装完成后,运行gcc -v,g++ -v,会出现版本信息,则完成
gcc_广义互相关_gcc时延_GCC互相关_gcc_源码.rar
需要软件包:gcc,gcc5.5两个安装包可在ftp服务器上下载 Yum 源 centos6 yum clean all yum -y install gcc gcc gcc -verson gcc -version yum -y install gcc yum -y install gcc –nogpgcheck rpm -Uvh ...
gcc技术手册 for GCC 4.5.3
arm-linux-gcc的安装自己总结.docx
gcc参数详解 gcc参数详解 gcc参数详解 gcc参数详解
gcc-4.8.0 gcc-4.9.0 gcc-5.1.0 gcc-6.1.0 gcc-7.1.0 gcc-8.1.0 gcc-9.1.0.7z 已验证可用,请放心下载。GCC used to stand for the GNU C Compiler, but since the compiler supports several other languages aside...
gcc扩展用法gcc扩展用法gcc扩展用法
GCC编译命令 Gcc命令行详解 Gcc命令行详解 Gcc命令行详解
GCC 11.2 离线安装包
已经安装GCC 4.9.3 #二、安装前准备# 1、 下载 GCC-8.3.0 从 https://ftp.gnu.org/gnu/gdb/ 下载 gcc-8.3.0.tar.gz,复制到NeoKylin用户目录/tools。 2、 GCC需要的相关依赖项 gcc-8.3.0 依赖 gmp-6.1.0、mpfr-3.1.4...
gcc 说明书 gcc 说明书 gcc 说明书
Linux 中最重要的软件开发工具是 GCC。GCC 是 GNU 的 C 和 C++ 编译器。实际上,GCC 能够编译三种语言:C、C++ 和 Object C(C 语言的一种面向对象扩展)。利用 gcc 命令可同时编译并连接 C 和 C++ 源程序。
tar xvf /root/gcc-src/mpfr-3.1.4.tar.gz -C /root/gcc-4.8.5/ 或者 tar xvf /root/gcc-src/mpfr-3.1.4.tar.bz2 -C gcc-4.8.5/ mv /root/gcc-4.8.5/cloog-0.18.4 /root/gcc-4.8.5/cloog mv /root/gcc-4.8.5/gmp-...