【发布时间】:2016-07-10 10:43:48
【问题描述】:
使用链接链接 MASM 程序会导致加载 mspdbcore.dll 出错(错误代码:193)
在 Visual Studio 2015 中构建汇编程序时没有问题。但是,手动执行这些步骤会产生如下所示的链接器错误。
我已经在系统的VC目录下找到了mspdbcore.dll,并把这个目录添加到了Path中,但是并没有解决问题。
我似乎无法找到问题所在,我希望有人能够指导我正确的方向。
系统为Windows 10 64位版本。
C:\Users\nlykkei\Desktop>ml /c /coff Hello.asm
Microsoft (R) Macro Assembler Version 14.00.23506.0
Copyright (C) Microsoft Corporation. All rights reserved.
Assembling: Hello.asm
C:\Users\nlykkei\Desktop>link /subsystem:windows /defaultlib:kernel32.lib /defaultlib:user32.lib Hello.obj
Microsoft (R) Incremental Linker Version 14.00.23506.0
Copyright (C) Microsoft Corporation. All rights reserved.
LINK : fatal error LNK1171: unable to load mspdbcore.dll (error code: 193)
Hello.asm 程序:
.386
.model flat, stdcall
.stack 4096
extrn MessageBoxA@16 : PROC
ExitProcess PROTO, dwExitCode:DWORD
.data
MsgBoxCaption db "Win32 Assembly", 0
MsgBoxText db "Hello World!", 0
.code
Hello_ PROC
push 0
push offset MsgBoxCaption
push offset MsgBoxText
push 0
call MessageBoxA@16
INVOKE ExitProcess, 0
Hello_ ENDP
END Hello_
【问题讨论】:
-
您还需要在 PATH 中包含
msobj140.dll所在的目录 (Common7\IDE)。 -
感谢您的 cmets。 @HansPassant user32.lib 和 kernel32.lib 文件存储在哪里?链接器使用 /defaultlib:user32.lib 等可以完美运行,但我很好奇自己在哪里可以找到这些文件。快速系统搜索什么也没显示。
-
在 Windows SDK 目录中。 LIB 环境变量指向它。
-
我也将我名字的首字母大写。文件名大小写在 Windows 上是完全不相关的。
标签: windows assembly linker masm masm32