无法使用visual studio命令提示符与system32.dll链接

时间:2012-11-07 01:10:29

标签: winapi assembly linker nasm x86-64

将link.exe与visual studio命令提示符一起使用:

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

1 个答案:

答案 0 :(得分:0)

MSVC的链接无法直接链接到DLL - 您需要使用kernel32.lib导入库:

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

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

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