【问题标题】:Linking MASM-program with link results in error to load mspdbcore.dll (error code: 193)使用链接链接 MASM 程序会导致加载 mspdbcore.dll 时出错(错误代码:193)
【发布时间】: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


【解决方案1】:

如果您确实将 mspdbcore.dllmspdb140.dll 文件放在正确的位置,并且您的路径显示正确。

不知何故,我的系统正在拉动这个 PATH=".;D:\\p4\\dk\\win\\VC\\14.14.26428\\bin\\HostX86" 而不是固定的: PATH=".;D:\\p4\\dk\\win\\VC\\14.14.26428\\bin\\HostX64"

尝试重新启动您的计算机,因为奇怪的是,在拔掉我的头发一个小时后,它为我解决了这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多