我正在Mac OS X上的Snow Leopard下运行GCC 4.2.1。我想用它来编译我15年前写的一些旧的C/C++ DOS游戏,以便可以在DosBox下运行它们。为此,它们显然需要以DOS可执行格式进行编译,有人可以告诉我如何使用GCC进行此操作吗?
谢谢!
最佳答案
DOSBox在模拟下运行16位x86实模式代码。 OSX 10.6上的常规GCC编译器以OSX操作系统和32位x86保护模式为目标,因此您不能使用该编译器来构建在DOSBox中运行的代码。
您可能能够做的是在DOSBox本身中运行DOS编译器。 DJGPP是GCC的MS-DOS端口,但是它生成针对DPMI子系统的32位保护模式代码。对我来说,尚不清楚DOSBox是否支持DPMI,但我想它确实支持,而DJGPP本身在DOSBox compatability list中,因此可以想象,如果它没有做任何异常的事情,它生成的代码也可以运行。仿真硬件。
Borland Turbo C也在兼容性列表上,并且TC 2.01可合法免费获得。其他版本也可以下载,但是我怀疑这种分发的合法性。
但是,更可靠的解决方案可能是使用VirtualBox在OSX上托管的虚拟机中安装正版MS-DOS或DOS兼容的OS。如果您没有MS-DOS的拷贝,则可以尝试FreeDOS。