首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >masm32链接器不创建可执行文件。

masm32链接器不创建可执行文件。
EN

Stack Overflow用户
提问于 2013-10-23 17:55:24
回答 1查看 7.8K关注 0票数 5

我在Windows masm32计算机上安装了SP3。我从这里下载了masm32:

http://www.masm32.com/masmdl.htm

安装好了。我将路径C:\masm32 32\bin添加到path环境变量中。现在,我正在尝试组装和链接一个示例程序。它创建对象文件,但不创建可执行文件。

示例程序:

代码语言:javascript
复制
include \masm32\include\masm32rt.inc 

.data
MyTitle db "ASM!",0
MyText db "Some Text!",0

.code
start:
push 0
push offset MyTitle
push offset MyText
push 0
call MessageBoxA
call ExitProcess
end start

另外,请注意,c:\masm32 32\bin目录中存在的默认link.exe文件在链接时抛出了一个错误,如下所示:

代码语言:javascript
复制
 Assembling: sample.asm

***********
ASCII build
***********

Microsoft (R) Incremental Linker Version 5.12.8078
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.

/z2
"sample.obj+"
"sample.obj"
"sample.exe"
NUL
LINK : warning LNK4044: unrecognized option "z2"; ignored
LINK : fatal error LNK1181: cannot open input file "sample.obj+"

我从这里得到了另一个版本的link.exe:

http://download.microsoft.com/download/vc15/Update/1/WIN98/EN-US/Lnk563.exe

当我使用以下命令组装和链接时:

代码语言:javascript
复制
ml.exe sample.asm sample.obj

它给出了错误:

代码语言:javascript
复制
 Assembling: sample.asm

***********
ASCII build
***********


Microsoft (R) Segmented Executable Linker  Version 5.60.339 Dec  5 1994
Copyright (C) Microsoft Corp 1984-1993.  All rights reserved.

Object Modules [.obj]: sample.obj+
Object Modules [.obj]: "sample.obj"
Run File [sample.exe]: "sample.exe"
List File [nul.map]: NUL
Libraries [.lib]:
Definitions File [nul.def]:
LINK : fatal error L1104: \masm32\lib\masm32.lib : not valid library
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-26 02:50:53

嗯,你肯定不想使用分段链接器,这是为16位代码。继续使用Incremental Linker Version 5.12.8078

你得到了一个obj文件?这就是ML.exe所做的。它是MASM汇编程序,它将把您的代码集成到一个obj文件中,您可以将该文件传递给您选择的链接器来创建exe。我说你选择的链接器,因为有一些链接,你可以使用所有与他们各自的利弊。

创建对象文件:ml /c /coff /Cp sample.asm

/c选项只告诉ml组装,而不尝试链接。

/Cp选项告诉ml保留所有标识符的大小写。

/coff以公共对象文件格式创建obj文件,这是我们在x86上使用的。

现在,您需要将obj文件链接到exe:link /subsystem:windows sample.obj

/subsystem:windows创建一个GUI。更改为console以创建一个基于控制台的应用程序(与DOS应用程序不同)

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19548979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档