开发一个C语言程序需要经过的四个步骤:编辑、编译、连接、运行。
C语言程序可以使用在任意架构的处理器上,只要那种架构的处理器具有对应的C语言编译器和库,然后将C源代码编译、连接成目标二进制文件之后即可运行。
1、预处理:输入源程序并保存(.C文件)。
2、编译:将源程序翻译为目标文件(.OBJ文件)。
3、链接:将目标文件生成可执行文件(.EXE文件)。
4、运行:执行.EXE文件,得到运行结果。
扩展资料:
C语言代码变为程序的几个阶段:
1、首先是源代码文件test.c和相关的头文件,如stdio.h等被预处理器cpp预处理成一个.i文件。经过预编译后的.i文件不包含任何宏定义,因为所有的宏已经被展开,并且包含的文件也已经被插入到.i文件中。
2、编译过程就是把预处理完的文件进行一系列的词法分析、语法分析、语义分析以及优化后产生相应的汇编代码文件,这个过程往往是我们所说的整个程序的构建的核心部分,也是最复杂的部分之一。
3、汇编器不直接输出可执行文件而是输出一个目标文件,汇编器可以调用ld产生一个能够运行的可执行程序。即需要将一大堆文件链接起来才可以得到“a.out”,即最终的可执行文件。
4、在链接过程中,对其他定义在目标文件中的函数调用的指令需要被重新调整,对实用其他定义在其他目标文件的变量来说,也存在同样问题。
参考资料来源:百度百科-c语言
c语言中的编辑,编译,连接,运行分别是什么意思
编辑就是对代码的编写,按照c语言规则,编写完成一定功能的代码。
编译就是对代码进行编译,让代码从高级语言编译成可以让电脑识别运算的机器码。
连接就是对代码各个函数等进行,连接
运行就是运行所编辑代码组成的程序。
编辑,编译和运行C程序需要什么条件?
c程序的编辑,编译,链接和运行
编辑
对于C语言来说,任何文本编辑器都是可以的;windows自带的notepad,linux常用VIM都可以
编译,链接
虽然这是两个步骤,但通常是同一套tool,例如开源的gcc系列,微软的visual C++都有自己的编译链接工具。
运行
一旦编译链接完成通常就可以在目标机器上运行了;如果使用了动态库,还需要运行环境里有对应的库文件才行。
c语言编辑编译链接运行,c语言如何编译运行
C语言编辑编译连接的作用是什么
C语言编辑的作用是检查语法,制作C语言的源文件和头文件,生成汇编代码。
C语言编辑的作用是将汇编代码转换机器码。在这一步中,会对文件内部的语法语义做处理,如果编译出错,无法进行后续动作。
C语言链接的作用是将机器码链接到一起生成可执行程序。这一步会对文件之间的关联做检查,如果出错,将不会生成可执行程序,也就无法执行。
扩展资料:
C语言链接时,将源文件中用到的库函数与汇编生成的目标文件.o合并生成可执行文件。该可执行文件会变大很多,一般是调用自己电脑上的静态库。
静态库和应用程序编译在一起,在任何情况下都能运行,而动态库是动态链接,文件生效时才会调用。很多代码编译通过,链接失败就极有可能在静态库和动态库这出现了纰漏,要视情况解决。缺少相关所需文件,就会链接报错。这个时候就要检查下本地的链接库是不是缺损。
C语言文件的编译与执行的四个阶段并分别描述
开发C程序有四个步骤:编辑、编译、连接和运行。
任何一个体系结构处理器上都可以使用C语言程序,只要该体系结构处理器有相应的C语言编译器和库,那么C源代码就可以编译并连接到目标二进制文件上运行。
1、预处理:导入源程序并保存(C文件)。
2、编译:将源程序转换为目标文件(Obj文件)。
3、链接:将目标文件生成为可执行文件(EXE文件)。
4、运行:执行,获取运行结果的EXE文件。
扩展资料:
将C语言代码分为程序的几个阶段:
1、首先,源代码文件测试。以及相关的头文件,比如stdio。H、由预处理器CPP预处理为.I文件。预编译的。文件不包含任何宏定义,因为所有宏都已展开,并且包含的文件已插入。我归档。
2、编译过程是对预处理文件进行词法分析、语法分析、语义分析和优化,生成相应的汇编代码文件。这个过程往往是整个程序的核心部分,也是最复杂的部分之一。
3、汇编程序不直接输出可执行文件,而是输出目标文件。汇编程序可以调用LD来生成可以运行的可执行程序。也就是说,您需要链接大量的文件才能获得“a.out”,即最终的可执行文件。
4、在链接过程中,需要重新调整其他目标文件中定义的函数调用指令,而其他目标文件中定义的变量也存在同样的问题。
参考资料来源:百度百科-c语言
不同文件夹也可以链接。c语言中头文件和源文件不在同一文件夹也可以的,引用中加入头文件的绝对路径就可以,在“F:/代码”下新建一个头文件h,内容是“int a=10 ”,在其它目录新建cpp文件,如下:#includeinclude "F:/代码/1.h"//引用1.h文件分类: 电脑/网络 >>程序设计 >>其他编程语言问题描述:
int Amain(){int power(int)int b=3,c,d,mprintf("enterthe number a and its power m:\n")scanf("%d,%d",&A,&m)c=A*bprintf("%d*%d=%d\n",A,b,c)d=power(m)printf("%d**%d=%d",A,m,d)getch()}--------------------------------extern Apower(int n){int i,y=1for(i=1i<=ni++)y*=Areturn y}光给了两个源文件,又没告诉怎么连接啊
解析:
第一个文件叫 aa.c
#include <stdio.h>
#include <stdlib.h>
int A这里,你漏了分号和头文件
main()
{
int power(int)
。。。
}
第二个文件叫 bb.c
extern A
power(int n) 这里你多写了一个分号
{int i,y=1
for(i=1i<=ni++)
y*=A
return y
}
----------------------
编译方法:
编aa.c得aa.obj
cl aa.c -c
编bb.c得bb.obj
cl bb.c -c
链接两个obj
cl aa.obj bb.obj
得 aa.exe
我用的是VC++编译器。 -c 是 编译成 obj 文件,暂不链接。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)