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用的程序的选项。选项是对编译器的指示。有时也称为“开关”。)

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

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

(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文件。

原文链接: https://www.cnblogs.com/ttmeng/p/17117750.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

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

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/317768

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月16日 下午2:49
下一篇 2023年2月16日 下午2:51

相关推荐