ld链接器不编译win64对象文件

时间:2015-08-11 16:11:47

标签: assembly mingw nasm ld win64

每当我尝试在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

1 个答案:

答案 0 :(得分:1)

问题:我使用LD作为我的链接器。 LD是用linux创建的,因此它从未构建为编译win64目标文件。

解决方案:使用Windows链接器进行编译。归功于I8086,他在godevtool.com建议使用GoLinker,效果非常好。

非常感谢Michael Petch,他建议使用Msys2而不是MinGW来编译win64,以及zx485,他告诉我使用JLink和JWasm。