linux gcc编译c文件头文件,使用GCC编译器编译C语言
凶猪下山
转载
关注
0点赞·1047人阅读
GCC编译C源代码有四个步骤:预处理—->编译—->汇编—->链接。
可以利用GCC的参数来控制执行的过程,这样就姿耐可以更深入的了解编译C程序的过程。
下面将通过对一个程序的编译来演示整个过程。
#include
int main()
{
printf("happy new year!\n")
return 0
}
1:预处理:编译器将C程序的头文件编译进来,还有宏的替换,可以用gcc的参数-E来参看。
预处理 命令:gcc -E hello.c -o hello.i
作用:将hello.c预处理输出hello.i
2:编译:这个阶段编译器主要做词法分析、语法分析、语义分析等,在检查无错误后后,把代码翻核凳译成汇编语言。可用gcc的参数-S来参看。
编译器(ccl)将文本文件hello.i 翻译成文本文件hello.s, 它包含一个汇编语言程序。汇编语言程序中的每条语句都以一种标准的文本格式描述了一条低级机器语言指令。
编译命令:gcc -S hello.i -o hello.s
作用:将预处理输出文件hello.i汇编成hello.s文件
3:汇编:把编译阶段生成的.s 文件转换为二进制目标代码。可用gcc的参数-c来参看。汇编器(as)将hello.s翻译成机器语言指令,把这些指令打包成可重定位目标程序的格式, 并将结果保存在目标文件hello.o中。hello.o文件是一个二进制文件,它的字节编码是机器语言。
汇编 命令:gcc -c hello.s -o hello.o
作用:作用:将汇编输出文件hello.s编译输出hello.o文件
4:链接:把obj文件链接为可执行的文改册旅件:链接器(ld)负责.o文件的并入。结果就是hello文件,它是一个课执行的目标文件,可以加载到存储器后由系统调用。
链接命令:gcc hello.o -o hello
一步 *** 作的话是: (-o必须在hello之前 )
$gcc hello.c -o hello
$./hello或者:(会默认生成a.out文件)
$gcc hello.c
$./a.out
c 说明c++ 说明
gcc 说明
原文参考 http://www.gainstart.cn
本文主要介绍和记录gcc编译流程及原理。过多的概念和名词这里就不做解释。主要还是说明gcc的编译原理。
首先我们先准备 helloworld.c 源码文件,内容如下
使用 gcc helloworld.c 命令 默认在当前目录下生成 a.out 执行文件,这时我们可以使用命令 ./a.out 执行此文件
gcc 编译过程分为 预处理(预处理文件.i) -> 编译(汇编文件.s) -> 汇编(目标文件.o) -> 链接(可执源源行文件.exe | a.out)
gcc首先会做预处理,并生成预处理文件,文段凳件后缀名为 .i 。
以下列出预处理会做的事情(当然预处理做的事不止这些)。
编译是把预处理文件编译成汇编语言,文件后缀名为 .s 。
使用 -S 生成汇编文件,如下
汇编握裂旅内容如图
汇编过程是将汇编文件编译成二进制文件,文件后缀为 .o
使用 -c 可以生成二进制文件,如下:
链接过程是将二进制文件链接成可执行文件。
编译时不用加任何参数,如下:
首先在已有工具栏右边空白处点右键,会d出一个竖向菜单,点后面的自定义工具栏d出如下:1、找到公式编辑器,用鼠标直接拉入到工具栏上,在word当中点击便自行插入进行编辑。如果未安装,点击会提示你进行安装,点击word安装盘路径便可自行安装。2、点击公式编辑器,里面有很多相应的公式分类,比如分数、根……等等,根据所需选择。3、用公式编辑器必须把段落设置为单倍行距以上,不能设置固定值或最小值。4、在插入的公式里面填入所需数据即可。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)