0

在 Visual Studio 命令提示符下使用 link.exe:

link.exe "C:\Users\Jon\Desktop\euler\asm\test" kernel32.dll

提供了有用的信息:LINK : fatal error LNK1181: cannot open input file 'kernel32.dll' 为什么它不能链接到系统 dll?

我继续使用 GoLink:

"C:\Program Files (x86)\nasm\golink.exe" /console test.obj Kernel32.dll

哪个链接很好,但是一旦我运行它就会崩溃。我正在使用 NASM"C:\Program Files (x86)\nasm\nasm.exe" -fwin64 "test.asm"

这是我的汇编程序Pastebin

4

1 回答 1

0

MSVC 的链接不能直接链接到 DLL - 您需要改用kernel32.lib导入库:

link.exe "C:\Users\Jon\Desktop\euler\asm\test.obj" kernel32.lib

您需要确保环境设置正确,以便link.exe找到导入库。这通常由vcvarsall.bat(或类似的)脚本/批处理文件完成,该文件配置用于运行工具的命令行窗口。如果您没有为构建工具配置环境的东西,则需要通过使用完整路径或通过使用/libpath链接器选项传递目录来传递库的位置。

我不知道 GoLink 是什么,所以我无法评论它做对或错的事情......

于 2012-11-07T03:16:47.803 回答