gpt4 book ai didi

windows - C(++) 编译器转换 - 请让 DJGPP 消失

转载 作者:可可西里 更新时间:2023-11-01 09:32:04 25 4
gpt4 key购买 nike

我正在编写一个内核,我有几个 friend 和我一起参与这个项目。我们一直在使用 DJGPP 编译该项目一段时间,但我们在以这种方式编译时遇到了一些跨平台兼容性问题,导致我在该项目上的主要 Partnet 无法在 Windows XP 上编译。 (DJGPP 的 GCC 在 Windows XP 上遇到超过 127 个参数列表的问题,但在 Vista 上没有遇到相同参数列表的问题。所以,这一次,Vista 在某些方面比 XP 工作得更好。o.O)

任何人,而不是试图找出一些肮脏的 hack 来使该死的东西用 DJGPP 编译,我们决定我们要完全放弃 DJGPP 并使用不同版本的 GCC for windows。问题是,MinGW(据我所知)不允许我们对代码的汇编部分使用 NASM 语法,此时将其全部转换为 AT&T 语法会有点痛苦。当然可能,因为它在项目的早期阶段,但很痛苦。

所以现在你知道问题所在了。我的问题是:哪个适用于 Windows 的 GCC 编译器发行版可以让我们最轻松地将这个项目移植到自身?理想情况下,我们正在寻找可以执行 NASM 汇编程序语法的东西,不依赖外部 dll(这里是内核,它无法访问它们)并且可以在 Windows 的多个版本上一致地工作。对于执行此操作的最佳方法,您有何建议?您推荐哪个版本的 Windows 版 GCC?

请注意,如果我们需要将项目转换为 AT&T 语法也没关系,我只是不想那样做。我们实际上是在使用 NASM 来组装它的汇编位,这会生成一个有效的 .o 文件,但 MinGW 出于某种原因无法链接它。我认为内联汇编位(可能 5 行)已经是 AT&T 语法,正如 GCC 所要求的那样。

谢谢!

最佳答案

您可能使用 -f 选项将错误的对象类型传递给 nasm。

我敢打赌你会通过 -f coff。

您将需要通过 -f win32。

关于windows - C(++) 编译器转换 - 请让 DJGPP 消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/257329/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com