我正在写一个内核,我有几个朋友和我一起做这个项目。我们一直在使用 DJGPP 编译该项目,但我们在以这种方式编译时遇到了一些跨平台兼容性问题,导致我在该项目上的主要 Partnet 无法在 Windows XP 上编译。(DJGPP 的 GCC 在 Windows XP 上存在超过 127 个参数列表的问题,但在 Vista 上没有相同参数列表的问题。因此,这一次,Vista 在某些方面比 XP 工作得更好。oO)
任何人,与其尝试一些肮脏的技巧来使该死的东西用 DJGPP 编译,我们决定我们要完全放弃 DJGPP 并使用不同版本的 GCC for windows。问题是,MinGW(据我所知)不允许我们对代码的汇编部分使用 NASM 语法,此时将其全部转换为 AT&T 语法会有点痛苦。当然可能,因为它在项目的早期阶段,但很痛苦。
所以现在你知道问题所在了。我的问题是:Windows 的 GCC 编译器发行版将允许我们最轻松地将这个项目移植到自身?理想情况下,我们正在寻找可以执行 NASM 汇编器语法的东西,不依赖外部 dll(这里是内核,它无法访问它们)并且可以在 Windows 上的多个版本上一致地工作。您对执行此操作的最佳方法有何建议,以及您推荐什么版本的 GCC for windows?
请注意,如果我们需要将项目转换为 AT&T 语法,那没关系,我不想这样做。我们实际上是在使用 NASM 来组装它的组装位,并生成一个有效的 .o 文件,但 MinGW 出于某种原因无法将其链接。我认为内联汇编位(可能是 5 行)已经是 AT&T 语法,正如 GCC 所要求的那样。
谢谢!