如何用LINK连接多个OBJ文件

如何用LINK连接多个OBJ文件,第1张

C:\Documents and Settings\yzy>"D:\Microsoft Visual Studio\VC98\Bin\linkexe" /

Microsoft (R) Incremental Linker Version 6008168

Copyright (C) Microsoft Corp 1992-1998 All rights reserved

usage: LINK [options] [files] [@commandfile]

options:

/ALIGN:#

/BASE:{address|@filename,key}

/COMMENT:comment

/DEBUG

/DEBUGTYPE:{CV|COFF}

/DEF:filename

/DEFAULTLIB:library

/DELAY:{NOBIND|UNLOAD}

/DELAYLOAD:dll

/DLL

/DRIVER[:{UPONLY|WDM}]

/ENTRY:symbol

/EXETYPE:DYNAMIC

/EXPORT:symbol

/FIXED[:NO]

/FORCE[:{MULTIPLE|UNRESOLVED}]

/GPSIZE:#

/HEAP:reserve[,commit]

/IMPLIB:filename

/INCLUDE:symbol

/INCREMENTAL:{YES|NO}

/LARGEADDRESSAWARE[:NO]

/LIBPATH:dir

/LINK50COMPAT

/MACHINE:{ALPHA|ARM|IX86|MIPS|MIPS16|MIPSR41XX|PPC|SH3|SH4}

/MAP[:filename]

/MAPINFO:{EXPORTS|FIXUPS|LINES}

/MERGE:from=to

/NODEFAULTLIB[:library]

/NOENTRY

/NOLOGO

/OPT:{ICF[,iterations]|NOICF|NOREF|NOWIN98|REF|WIN98}

/ORDER:@filename

/OUT:filename

/PDB:{filename|NONE}

/PDBTYPE:{CON[SOLIDATE]|SEPT[YPES]}

/PROFILE

/RELEASE

/SECTION:name,[E][R][W][S][D][K][L][P][X]

/STACK:reserve[,commit]

/STUB:filename

/SUBSYSTEM:{NATIVE|WINDOWS|CONSOLE|WINDOWSCE|POSIX}[,#[##]]

/SWAPRUN:{CD|NET}

/VERBOSE[:LIB]

/VERSION:#[#]

/VXD

/WARN[:warninglevel]

/WINDOWSCE:{CONVERT|EMULATION}

/WS:AGGRESSIVE

孩子你是东华万老师的课么?……

原因是:

(1)link将obj与库文件连接后才能生成exe可执行文件;

(2)link生成的exe文件能被机器识别,但obj不行。

(应该能应付了吧…… - = )

上机运行一个C程序,必须经过以下三个步骤:

1、编辑C源程序文件

所谓C源程序,就是存放C源程序的文件。C源程序文件可以随意命名,但其扩展名必须是C(在以下的说明中,我们假设文件名为AC)。

编辑C源程序文件有两种含义:建立或修改C源程序文件。如果磁盘中没有相应的文件,则编辑的目的就是建立新文件,即输入你的程序到文件中;如果相应的文件已经存在,则编辑的目的就是要修改文件。无论是建立或是修改,最终目的都是要得到一个正确的C源程序文件。将程序正确地保存在文件后,编辑工作即告结束。

2、编译和连接

(1)编译的概念及其目的

任何高级语言程序(源程序)计算机都不能直接识别,要执行源程序,首先必须翻译成机器语言即目标代码,计算机才能直接识别。将高级语言源程序翻译成目标代码程序的过程称为“编译”,编译工作由专门的编译程序完成,编译后得到的目标代码文件的扩展名为OBJ(如AOBJ)。

(2)连接的概念及其目的

编译后得到的目标代码虽然计算机能直接认识,但还不能直接执行,因此目标模块可能只是整个程序中的一个模块,并不是整个程序的完整模块;另外在目标模块中往往使用了一些未在本模块中定义的外部引用如外部函数等,因此,编译后还必须把各目标模块组合起来,同时把有关的各种代码装配在一起产生一个完整的可执行文件后,才能直接执行。组合和装配的过程就称为“连接”,由专门的连接程序完成,连接后得到的文件称为可执行文件,其扩展名为EXE(如AEXE)。

3、执行程序

经过编译和连接,最后得到了扩展名为EXE的可执行文件,就可以直接拿来运行。当可执行文件运行时,系统将CPU的控制权交给运行程序,同时按照程序设计的步骤一步步去执行,直到程序执行完毕为止。

对以上三个步骤,每一步骤都对应相应的程序命令,不过,不同版本的C语言其 *** 作命令会有所不同。这里,我们选用了Turbo c 20作为我们上机实习的工具。Turbo c集成环境是一个集编辑、编译、连接、调试、运行和文件管理为一体的工具,对C程序上机过程的三个步骤,都可在此集成环境中完成。我们首先了解Turbo c集成环境的使用方法。

>

Adobe photoshop cs5不能直接打开obj文件:

1、obj文件就是目标文件,是源程序经过编译程序编译后生成的,它不能直接执行,需要连接程序,连接后才能生成可执行文件,这种目标文件一般是由机器代码组成的,但也有例外,可以是自己定义的一些伪指令代码,但这样还需有专门的解释程序对其进行解释执行,连接程序是把目标代码和它所使用的库文件连接的程序;

2、他可以用UltraEdit打开,UltraEdit是能够满足一切编辑需要的编辑器,是一套功能强大的文本编辑器,可以编辑文本、十六进制、ASCII码,可以取代记事本,内建英文单字检查、C++及VB指令突显,可同时编辑多个文件,而且即使开启很大的文件速度也不会慢;

3、autodesk maya页可以打开这种文件,OBJ文件不包含面的颜色定义信息,不过可以引用材质库,材质库信息储存在一个后缀是"mtl"的独立文件中。

选择C”exe“

解析如下:

文件编辑的时候源码是CPP扩展名,C++头文件是H扩展名。编译源程序文件转换成obj扩展名的目标文件。链接将一个或多个目标文件与程序用到的库文件链拉起来,形成一个可以在 *** 作系统直接运行的执行程序exe。

也就是整个过程分为:预编译,对源代码的宏进行替换,生成中间文件(文本,默认不保留)》》翻译为汇编代码(文本,默认不保留)》》由汇编器生成二进制文件(obj)》》连接为可执行文件(exe)。

扩展资料

一、编译

目标代码生成是编译的最后一个阶段。目标代码生成器把语法分析后或优化后的中间代码变换成目标代码。目标代码有三种形式:

①可以立即执行的机器语言代码,所有地址都重定位;

②待装配的机器语言模块,当需要执行时,由连接装入程序把它们和某些运行程序连接起来,转换成能执行的机器语言代码;

③汇编语言代码,须经过汇编程序汇编后,成为可执行的机器语言代码。

目标代码生成阶段应考虑直接影响到目标代码速度的三个问题:一是如何生成较短的目标代码;二是如何充分利用计算机中的寄存器,减少目标代码访问存储单元的次数;三是如何充分利用计算机指令系统的特点,以提高目标代码的质量。

二、高级程序设计语言C

程序的编译

编译是指将编辑好的源文件翻译成二进制目标代码的过程。编译过程是由编译程序(编译器)完成的。不同 *** 作系统下的各种编译器的使用命令不完全相同,使用时应注意计算机环境。编译时,编译器首先要对源程序中的每一个语句检查语法错误,当发现错误时,就在屏幕上显示错误的位置和错误类型的信息。

此时,要再次调用编辑器进行查错修改。然后,再进行编译,直至排除所有语法和语义错误。正确的源程序文件经过编译后在磁盘上生成目标文件(后缀名为obj的文件)。程序的连接

编译后产生的目标文件是可重定位的程序模块,不能直接运行。连接就是把目标文件和其他必需的目标程序模块(这些目标程序模块是分别编译而生成的目标文件)以及系统提供的标准库函数连接在一起,生成可以运行的可执行文件的过程。连接过程使用C语言提供的连接程序(连接器)完成,生成的可执行文件(后缀名为exe的文件)存到磁盘中。

程序的运行

程序经过连接生成可执行文件后,就可以在 *** 作系统控制下运行若执行程序后达到预期目的,则C程序的开发工作到此完成否则,要进一步检查修改源程序,重复编辑-编译-连接-运行的过程,直到取得预期结果为止。

以上就是关于如何用LINK连接多个OBJ文件全部的内容,包括:如何用LINK连接多个OBJ文件、菜鸟提问 .obj文件为什么要执行Link才能执行呢、请说出C语言程序上机的基本步骤,并说明扩展名 c 、 obj 、 exe 的含义等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/9875164.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存