每当我尝试在NASM中创建一个程序时,我有两个选项可用:创建一个win32可执行文件(在我的x64机器上不起作用)或创建一个win64对象/输出文件。我使用NASM创建了一个win64目标文件,然后尝试将它与这些命令链接起来:
echo '<table><tr><th>Id</th><th>Name</th></tr>';
foreach ($response['sample'] as $player) {
echo '<tr><td>'.$player->id.'</td><td>'.$player->name.'</td></tr>';
}
echo '</table>';
nasm -f win64 -o output.o input.asm
来自MINGW ld input.o -o output.exe
的错误消息是:
ld
答案 0 :(得分:1)
问题:我使用LD作为我的链接器。 LD是用linux创建的,因此它从未构建为编译win64目标文件。
解决方案:使用Windows链接器进行编译。归功于I8086,他在godevtool.com建议使用GoLinker,效果非常好。
非常感谢Michael Petch,他建议使用Msys2而不是MinGW来编译win64,以及zx485,他告诉我使用JLink和JWasm。