为什么使用GCC编译的程序不能使用DOSbox运行,而使用Borland(Turbo C)编译的程序可以使用?

时间:2014-12-12 11:49:57

标签: c gcc turbo-c dosbox

多年前,我使用TurboC IDE创建了一个程序,也可以使用DOSbox运行该程序。现在,当我尝试运行在DOSbox中使用GCC编译的任何程序时,此消息出现了:

  

此程序无法在DOS模式下运行

所以我的问题是,为什么不能在DOSbox中运行使用GCC编译的程序,而从TurboC编译的程序是什么?

PS:我想在DOSbox中运行它们的原因是我想在手机中运行这些程序(安装了DOSbox)。

2 个答案:

答案 0 :(得分:1)

因为MS DOS是16位操作系统并且不支持32位程序。现代操作系统对直接硬件访问也有更严格的看法,因此现代程序必须通过一些硬件抽象层工作,这些层也在MS DOS中缺失。

答案 1 :(得分:1)

有一个名为" DJGPP"的GCC发行版。它允许使用GCC编译程序,并使用DPMI实现此目的。 Dos保护模式接口,您必须基本上以受保护模式运行程序。像Watcom这样的其他C环境做了同样的事情,但我不认为Borland曾经做过任何事情。