目标文件是由一个名为编译器的程序生成的计算机文件,它包含数据和指令。编译器将编程语言源代码转换为中间的机器可读形式,即目标代码。较小的程序可以在单个目标文件中编译,而较大的程序通常被编译成具有相关功能的几个...
目标文件是由一个名为编译器的程序生成的计算机文件,它包含数据和指令。编译器将编程语言源代码转换为中间的机器可读形式,即目标代码。较小的程序可以在单个目标文件中编译,而较大的程序通常被编译成具有相关功能的几个文件。这些单独的目标文件通过一个链接器连接起来,并添加操作系统特定的信息,以形成一个可执行程序。通常情况下,一个目标文件用“.obj”文件扩展名表示。这些文件有几种不同的格式,但是,最常见的是Intel®Relocatible Object Module Format(OMF),以及Windowsreg和UNIX®System V的通用对象文件格式(COFF)。在许多INIX®系统中,可执行和可链接格式(ELF)已取代COFF。无论格式如何,一个对象文件通常包含三种类型的信息与其它程序模块进行交互。对外部引用开放的过程和数据都被赋予名称,可以从其它模块调用它们。同样,对模块外信息的引用也会被标记,但不指定名称。当文件被链接时,未命名的引用将被赋予在中给定的名称最初定义它们的模块。本地名称用于在模块中单独引用的指令和数据。并非所有可链接的代码都存储为对象文件。库是作为目标代码存储的预编译例程的集合。它们的生成方式与目标文件基本相同,对存储经常调用的过程。当链接器在其他对象文件中找不到引用时,它会自动在库文件中搜索它。大多数编程语言的实现都带有一个标准函数库通过动态链接,一个对象文件可以被多个正在执行的程序同时使用。与链接时将对象代码绑定到程序不同,它是在加载程序时或在运行时引用过程时检索的。在Windows®环境中,这些被称为动态链接库,用扩展名“.dll”。与Unix®类似的系统通常将这种类型的文件称为动态共享对象(DSO)。这种类型的对象文件也可以用于特定的程序,并且是该程序安装的一部分
-
发表于 2020-08-06 21:34
- 阅读 ( 3350 )
- 分类:电脑网络