【发布时间】:2016-06-21 06:49:48
【问题描述】:
如何在 Linux 中编译和链接 64 位 Windows 汇编程序
我已经知道要跑步了
nasm -f win64 generic_assembly.asm -o generic_output
但在那之后我就不能跑了
ld generic_output -o generic_executable.exe
我已经尝试将 GoLink.exe 与 wine 一起使用,但我仍然怀疑它是否真的有效
也许我可以使用 Mingw-w64,但我不知道它是如何工作的
任何帮助将不胜感激我主要只是在寻找一个可以从 linux 运行的链接器,但对于 Windows 的链接器也将不胜感激。
【问题讨论】:
-
你需要一个像 MinGW 这样的 windows 交叉编译器。您的发行版可能已经有一个预先制作的包(您只需通过包管理器安装它)。一旦你安装了它,你就可以从交叉编译器运行 LD - 它可能被称为
x86_64-w64-mingw32-ld,GCC 交叉编译器将被称为x86_64-w64-mingw32-gcc等等。这是我的命名约定Debian Jessie 系统。 -
是的,我建议只使用
x86_64-w64-mingw32-gcc将 nasm 中的.obj文件链接到可执行文件中,以防需要任何不明显的ldarg。 (酌情使用-static和/或-nostdlib)。
标签: linux windows assembly cross-compiling