首页 > 其他分享 >第八章从源文件到可执行文件

第八章从源文件到可执行文件

时间:2023-02-19 16:55:49浏览次数:28  
标签:可执行文件 文件 第八章 源文件 编写 源代码 链接

本章所讲的就是原文件与可执行文件及其转换。

源代码是用某种编程语言编写的程序,源文件是保存源代码的文件。用任何编程语言编写的源代码经过翻译后得到的是本地代码。本地代码的内容就是各种数值的罗列,每个数值都表示某一个命令或数据。而编译源代码需要经过词法解析,语法解析,词义解析,中间代码生成,优化,最后得到目标代码。源文件仅经过编译,是无法得到可执行文件的编译后,得到的是目标文件,还需要进行链接处理,这就牵扯到链接器,链接器就是把多个目标文件结合,生成一个exe文件的处理,就是链接运行连接的程序,由于编写的代码中包含自己编写的函数和内部函数,向自己编写的函数是存储在源文件的,而内部函数就不在原文件中,是存储在扩展名为.lib的库文件中,库文件是指把多个目标文件集成保存在一个文件中的形式,链接器指定库文件后,就会从中把需要的目标文件抽取出来并同其他目标文件结合起来生成exe文件。

EXE文件的内容分为在配置信息变量组、数据组,当程序加载到内存后会生成堆和栈,栈是用来存储函数内部临时使用的变量以及函数调用时所用的参数的内存区域,堆是用来存储程序运行时的任意数据集对象的内存领域。

标签:可执行文件,文件,第八章,源文件,编写,源代码,链接
From: https://www.cnblogs.com/Xia-ZXN/p/17134998.html

相关文章

  • 如何展示C语言源文件的汇编代码文件及其二进制目标代码?
    假设一个C语言源文件包含如下函数定义:longmult2(long,long);voidmultstore(longx,longy,long*dest){ longt=mult2(x,y); *dest=t;}在命令行上使用"......
  • 重学Java-第八章 Java条件语句
    8.1if语句8.1.1语法​ 当需要根据给定条件来决定是否执行一段代码时,就需要用到if语句了。if块仅在布尔表达式(if括号内的表达式)为true时执行。if块的结构如下:if(条......
  • 8.7 可执行文件运行时的必要条件
    在程序运行时,虚拟的内存地址会转换成实际的内存地址。链接器会在EXE文件的开头,追加转换内存地址所需的必要信息。这个信息称为再配置信息。EXE文件的再配置信息,就成为了变......
  • 8.4 仅靠编译是无法得到可执行文件的
    编译器转换源代码后,就会生成本地文件。不过,本地文件是无法直接运行的。为了得到可以运行的EXE文件,编译之后还需要进行“链接”处理。下面,就让我们使用BorlandC++Compile......
  • 《程序是怎样跑起来的》·第八章 程序是在何种环境下运行
    热身问题:CPU可以解析和运行的程序形式称为什么代码?将多个目标文件结合生成EXE文件的工具称为什么?扩展名为.obj的目标文件的内容,是源代码还是本地代码?把多个目标......
  • 8.7可执行文件运行时的必要条件
        在程序运行时,虚拟的内存地址会转换成实际的内存地址。链接器会在EXE文件的开头,追加转换内存地址所需的必要信息。这个信息称为再配置信息。    EXE文......
  • Ubuntu14.04 apache2 配置 CGI(并测试:shell,可执行文件,python)
    PS:要转载请注明出处,本人版权所有。PS:这个只是基于《我自己》的理解,如果和你的原则及想法相冲突,请谅解,勿喷。前置说明  本文作为本人csdnblog的主站的备份。(BlogID......
  • 第八章 IO库
    第八章IO库前面章节已经在用的IO库设施istream:输入流类型,提供输入操作。ostream:输出流类型,提供输出操作cin:一个istream对象,从标准输入读取数据。cout:一个ostream对......
  • Linux基础课:第八章笔记--租云服务器及配环境
    最后一节课--完结撒花理解框架关系docker教程sudousermod-aGdocker$USER赋予用户sudo权限,加入到用户组中scp/var/lib/acwing/docker/images/docker_lesson_1_......
  • 8.4仅靠编译是无法得到可执行文件的
    编译器转换源代码后,就会生成本地文件。不过,本地文件是无法直接运行的。编译器转换源代码后,就会生成本地文件。不过,本地文件是无法直接运行的。为了得到可以运行的EXE文件,......