将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
答案 0 :(得分:0)
MSVC的链接无法直接链接到DLL - 您需要使用kernel32.lib
导入库:
link.exe "C:\Users\Jon\Desktop\euler\asm\test.obj" kernel32.lib
您需要确保正确设置环境,以便link.exe
可以找到导入库。这通常由配置用于运行工具的命令行窗口的vcvarsall.bat
(或类似)脚本/批处理文件完成。如果没有为构建工具配置环境的东西,则需要通过使用完整路径或通过传递带有/libpath
链接器选项的目录来传入库的位置。
我不知道GoLink是什么,所以我无法评论它的做法是对还是错......