首页 > 其他分享 >8.4仅靠编译是无法得到可执行文件的

8.4仅靠编译是无法得到可执行文件的

时间:2023-02-07 09:33:05浏览次数:42  
标签:可执行文件 文件 EXE 8.4 仅靠 编译 源代码 链接 函数

编译器转换源代码后,就会生成本地文件。不过,本地文件是无法直接运行的。

编译器转换源代码后,就会生成本地文件。不过,本地文件是无法直接运行的。为了得到可以运行的EXE文件,编译之后还需要进行“链接”处理。下面,就让我们使用Borland C++ Compiler5.5(以下称为Borland C++)来看一下编译和链接是如何进行的。

Borland C++的编译器是bcc32.exe这个命令行工具。在Windows的命令提示符 中,运行下列命令后,由C语言编写的源文件Smaple1.c就会被编译。
bcc32 -W -c Samplel.c

“-W-c”是用来指定编译Windows用的程序的选项。选项是对编译器的指示。有时也称为“开关”。

编译后生成的不是EXE文件,而是扩展名为“.obj”的目标文件。Sample1.c编译后,就生成了Sample1.obj目标文件。虽然目标文件的内容是本地代码,但却无法直接运行。那么这是为什么呢?原因就是当前程序还处于未完成状态。

让我们再来看一遍代码清单8-1中的源代码。


(1)围起来的函数Average()同(2)围起来的函数WinMain()是程序员自己作成的,处理内容记述在源代码中。Average()是用来返回两个参数数值的平均值的函数,Winmain()是程序的运行起始函数。除此之外,还有(3)指出的sprintf(函数和(4)指出的MessageBox()函数。sprintf)是通过指定格式把数值变换成字符串的函数,MessageBox)是消息框函数,不过源代码中都没有记述这些函数的处理内容。因此,这时就必须将存储着sprintf(和MessageBoxO的处理内容的目标文件同Sample1.obj结合,否则处理就不完整,EXE文件也就无法完成。

把多个目标文件结合,生成1个EXE文件的处理就是链接,运行连接的程序就称为链接器(linkage editor或连结器)。Borland C++的链接器就是ilink32.exe的命令行工具。在Windows命令提示符下运行以下命令后,程序所需的目标文件就会被全部链接生成Sample1.exe这个EXE文件。

标签:可执行文件,文件,EXE,8.4,仅靠,编译,源代码,链接,函数
From: https://www.cnblogs.com/z1218/p/17097307.html

相关文章