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

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

时间:2023-02-13 20:57:57浏览次数:44  
标签:可执行文件 文件 EXE 函数 仅靠 编译 Sample1 链接 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目标文件。虽然目标文件的内容是本地代码,但却无法直接运行。那么这是为什么呢?原因就是当前程序还处于未完成状态。

(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,函数,仅靠,编译,Sample1,链接,8.4
From: https://www.cnblogs.com/ttmeng/p/17117750.html

相关文章

  • 8.7可执行文件运行时的必要条件
        在程序运行时,虚拟的内存地址会转换成实际的内存地址。链接器会在EXE文件的开头,追加转换内存地址所需的必要信息。这个信息称为再配置信息。    EXE文......
  • Ubuntu14.04 apache2 配置 CGI(并测试:shell,可执行文件,python)
    PS:要转载请注明出处,本人版权所有。PS:这个只是基于《我自己》的理解,如果和你的原则及想法相冲突,请谅解,勿喷。前置说明  本文作为本人csdnblog的主站的备份。(BlogID......
  • 8.4仅靠编译是无法得到可执行文件的
    编译器转换源代码后,就会生成本地文件。不过,本地文件是无法直接运行的。编译器转换源代码后,就会生成本地文件。不过,本地文件是无法直接运行的。为了得到可以运行的EXE文件,......
  • 8.7可执行文件运行时的必要条件
    在程序运行时,虚拟的内存地址会转换成实际的内存地址。链接器会在EXE文件的开头,追加转换内存地址所需的必要信息。这个信息称为再配置信息。EXE文件的再配置信息,就成为了变......
  • 从源文件到可执行文件——8.1计算机只能运行本地代码
    1.CPU可以解析和运行的程序形式称为什么代码?  本地代码(机器语言代码)2.将多个目标文件结合生成EXE文件的工具称为什么?  链接器3,扩展名为.obi的目标文件的内......
  • 8.4仅靠编译是无法得到可执行文件的
    编译器转换源代码后,就会生成本地文件。不过,本地文件是无法直接运行的。为了得到可以运行的EXE文件,编译之后还需要进行“链接”处理。下面,就让我们使用BorlandC++Compiler......
  • python打包为exe可执行文件
    如果要给别人使用,那么打包成exe就是个完美的解决方案了。打包用到了pyinstaller第三方库,执行​​pipinstallpyinstaller​​进行安装。此处打包用到了pyinstaller的两个参......
  • Linux环境下:程序的链接, 装载和库[可执行文件的装载]
    现代操作系统如何装载可执行文件?给进程分配独立的虚拟地址空间建立虚拟地址空间和可执行文件的映射关系把CPU指令寄存器设置成可执行文件的入口地址,启动执行可执行......
  • python打包实战:用pyinstaller打包scrapy成单个可执行文件
    前言写好的python程序要打包成windows的可执行文件,一般都是用pyinstaller。比如你要对test.py这个文件打包,一般的pyinstaller-Ftest.py就可以了。还有另一种用法,就是用s......
  • Python代码打包成可执行文件的常用方法!
    大家都知道,平时我们写的Python程序,其运行主要依赖于Python环境。当我们想要提供给别人使用或者更换电脑时,就需要重新安装Python环境,十分麻烦,因此我们想要将它传给任何人......