在Mac OS上使用GCC为MS-DOS编译C程序(DOSBox)

Scr*_*ers 6 c c++ macos gcc dos

我在Mac OS X上运行Snow Leopard下的GCC 4.2.1.我想用它来编译15年前我写的一些旧的C/C++ DOS游戏,以便我可以在DosBox下运行它们.要做到这一点,他们显然需要以DOS可执行格式编译,有人能告诉我如何使用GCC这样做吗?

谢谢!

Cli*_*ord 4

DOSBox 在仿真下运行 16 位 x86 实模式代码。OSX 10.6 上的常规 GCC 编译器针对 OSX 操作系统和 32 位 x86 保护模式,因此您无法使用它来构建在 DOSBox 中运行的代码。

您可以做的是在 DOSBox 本身中运行 DOS 编译器。DJGPP是 GCC 的 MS-DOS 端口,但它生成针对 DPMI 子系统的 32 位保护模式代码。我不清楚 DOSBox 是否支持 DPMI,但我想它确实支持,而且 DJGPP 本身也在DOSBox 兼容性列表中,所以人们会想象它生成的代码如果不做任何超出范围的事情也可能运行。对于模拟硬件来说很普通。

Borland Turbo C也在兼容性列表中,并且TC 2.01可以合法免费获得。其他版本可以在其他地方下载,但我怀疑这种分发的合法性。

然而,更强大的解决方案可能是使用VirtualBox在 OSX 上托管的虚拟机中安装正版 MS-DOS 或 DOS 兼容操作系统。如果您没有 MS-DOS 的副本,您可以尝试FreeDOS