Ⅰ C语言文件的编译与执行的四个阶段并分别描述
开发C程序有四个步骤:编辑、编译、连接和运行。
任何一个体系结构处理器上都可以使用C语言程序,只要该体系结构处理器有相应的C语言编译器和库,那么C源代码就可以编译并连接到目标二进制文件上运行。
1、预处理:导入源程序并保存(C文件)。
2、编译:将源程序转换为目标文件(Obj文件)。
3、链接:将目标文件生成为可执行文件(EXE文件)。
4、运行:执行,获取运行结果的EXE文件。
(1)描述一下gcc的编译过程扩展阅读:
将C语言代码分为程序的几个阶段:
1、首先,源代码文件测试。以及相关的头文件,比如stdio。H、由预处理器CPP预处理为.I文件。预编译的。文件不包含任何宏定义,因为所有宏都已展开,并且包含的文件已插入。我归档。
2、编译过程是对预处理文件进行词法分析、语法分析、语义分析和优化,生成相应的汇编代码文件。这个过程往往是整个程序的核心部分,也是最复杂的部分之一。
3、汇编程序不直接输出可执行文件,而是输出目标文件。汇编程序可以调用LD来生成可以运行的可执行程序。也就是说,您需要链接大量的文件才能获得“a.out”,即最终的可执行文件。
4、在链接过程中,需要重新调整其他目标文件中定义的函数调用指令,而其他目标文件中定义的变量也存在同样的问题。
Ⅱ 请问linux下,gcc编译程序的过程(从读取源文件到制作可执行程序中间所有过程,越详细越好)
gcc -S *.c 预处理+反汇编
Ⅲ gcc编译问题
-c和-o都是gcc编译器的可选参数。-c表示只编译(compile)源文件但不链接,会把.c或.cc的c源程序编译成目标文件,一般是.o文件。-o用于指定输出(out)文件名。不用-o的话,一般会在当前文件夹下生成默认的a.out文件作为可执行程序。
Ⅳ 关于C语言的编译过程,GCC与windows下的c编译器(如VS2010)的编译过程是否存在区别
一般的编译步骤是如此, 但也有一步到位的编译器
Ⅳ gcc 编译
int main()
{
int a;
int *p;
a=65;
p=&a;
printf("%d \n",*p);
printf("%d \n",a);
}
Ⅵ gcc编译流程
gcc编译分为四部;
第一步,预编译,将程序中的宏定义等预编译;
第二步,编译,将*.h,*.c等文件编译成为*.o文件;
第三步,汇编;
第四步,连接,将*.o文件连接库,生成可执行文件!
Ⅶ 的程序在Gcc下怎么编译
关于 C 语言源程序,最简单的使用方式就是:gcc my_program.c <cr>,如果没有程序错误的话,gcc 编译器会生成一个缺省的可执行程序:a.out 。
常用的有:gcc -o my_runfile my_program.c <cr>
使用 my_runfile 运行文件名代替缺省的可执行程序 a.out
gcc -c my_program.c <cr>
只编译,不连接。生成一个 my_program.o 的文件。
如果还需要更多的选项,那就需要查看 gcc 的编译选项了。当然了,如果程序的规模再要大的话,那就需要编写 makefile 文件,以及 make 工具对 makefile 进行管理了。
Ⅷ 结合例子,简述gcc编译器的编译流程
你的程序可能太短,看不出区别来,你比对一下她们生成的汇编码就知道了,优化可能O1就优化完了,你用O0对比O1的汇编结果,肯定不同的,从中能看出它到底优化了哪个地方