gpt4 book ai didi

linker - masm32 链接器不创建可执行文件

转载 作者:行者123 更新时间:2023-12-04 17:49:48 24 4
gpt4 key购买 nike

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

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

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

示例程序:

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\bin 目录中的默认 link.exe 文件在链接时抛出错误,如下所示:
 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

当我使用以下命令组装和链接时:
ml.exe sample.asm sample.obj

它给出了错误:
 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

最佳答案

好吧,您绝对不想使用分段链接器,这是针对 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 文件,这就是我们在 Windows 上用于 x86 的格式。

现在,您需要将 obj 文件链接到 exe:link /subsystem:windows sample.obj/subsystem:windows创建一个 GUI Windows exe。更改为 console创建基于控制台的应用程序(与 DOS 应用程序不同)

enter image description here

关于linker - masm32 链接器不创建可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19548979/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com