用C语言编的程序,要生成可执行文件的时候,要编译、链接,编译是什么意思啊?链接是什么意思?编译和链接

用C语言编的程序,要生成可执行文件的时候,要编译、链接,编译是什么意思啊?链接是什么意思?编译和链接有什么区别?

编译就是把C代码转换成CPU可执行的机器指令,每个.c文件生成一个.obj文件。
链接就是把生成的(多个) .obj 文件及用到的库文件(.lib)一起组合生成可执行文件(.exe)。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-09
C语言是一门计算机语言,有自己一定的语法。但是,C语言并不能直接被对象所理解,需要将C语言转变成可执行代码,即二进制代码。在C语言转变成二进制可执行代码时,是以工程为单位的。而一个工程中往往会包含多个C文件。因此,需要将每个C文件都编译成二进制代码。此时,每个C文件所对应的二进制代码是独立的。由于工程是一个系统,所以需要将所有的C文件二进制代码链接到一起,形成一个工程的可执行文件。
综上,编译和链接就是指的将C文件转变成二进制代码,并将各个独立的C文件二进制代码链接到一起,形成一个可执行文件的过程。
第2个回答  2011-03-06
编辑完成以后是编译,对编译好的文本文件成功编译后将生成目标文件,目标程序文件的主文件名与源程序的主文件名相同,扩展名是.obj。编译程序的任务是对源程序进行语法和语义分析,若源程序的语法和语义都是正确的,才能生成目标程序,否则应回到编辑阶段修改源程序。
编译成功以后,目标文件依然不能运行,需要将目标程序和库函数连接为一个整体,从而生成可执行文件。可执行文件的扩展名是.exe。 链接阶段的任务就是把程序中所有的目标文件和所需的库文件都链接在一起,最终生成一个可以直接运行的文件,即可执行文件。

参考资料:C语言程序设计

第3个回答  2011-03-05
是“平台无关”的意思。。

这个就是JAVA语言最自豪的事情了。。

所谓“平台无关”是指兼容性强,无论是在WINDOWS环境下,还是在LINUX环境下,或者是UNIX等等这样的不同的操作系统环境下都能够运行.

与此相对的是“平台相关”,最典型当然是汇编语言,因为与硬件以及软件环境有很大的依赖,所以在一台机器能够正常运行的程序,不一定能在另一台机器上正常运行。并且为了在其他的机器上能够运行就必须做出有可能很大的修改。。这不利于软件的推广。。

而JAVA籍由“平台无关”获得了极大的通用性。。。
这一点也就是JAVA语言设计者的初衷。。。