<分区>
我在 VirtualBox 虚拟机上安装了 MS-DOS 6.22,一切正常,这样做的目的是编译一个用 C 语言编写的程序,显示和编辑(虚拟)RAM 中的位。但是,我需要一种在虚拟 MS-DOS 操作系统上安装 C 编译器的方法。
标签 c virtualbox dos
<分区>
我在 VirtualBox 虚拟机上安装了 MS-DOS 6.22,一切正常,这样做的目的是编译一个用 C 语言编写的程序,显示和编辑(虚拟)RAM 中的位。但是,我需要一种在虚拟 MS-DOS 操作系统上安装 C 编译器的方法。
最佳答案
以下是其他人遗漏的一些细节:
没有人提到 DJGPP完全没有。
它是 GCC 的保护模式 DOS 端口,可能拥有所有开源选项中最多的可用库和指南。 (包括一个 Turbo Vision port 和一个 installation HOWTO )
无论您想做什么,OpenWatcom ( source ) 可能会满足您的需求。
OpenWatcom 仍然包含使用 DOS/4GW 的免费许可证,这使得它在当时非常流行。 (当你看到像 DOOM 这样的游戏在启动时说“DOS/4GW Protected Mode Runtime”,这意味着它是使用 Watcom C/C++ 构建的,因为 DOS/4GW 是 DOS/4G 的特殊 Watcom 捆绑版本。)
事实上,当他 passed away 时,DOS/4GW 的创建者正试图挖掘更新版本的 DOS/4GW 的源代码以贡献给 Open Watcom。 .
如果您不想怀旧,OpenWatcom 捆绑了更新、更好的 DOS/4GW 替代品,例如 DOS/32 和 PMODE/W。
如果您想玩转 Windows 3.1 编程,OpenWatcom 包括 Win386,这是一个用于 Window 3.x 的 32 位扩展程序,在 Microsoft 生产自己的“Win32s”之前,Sierra 等公司将其用于 Windows 3.1 游戏"32 位 API 插件。
OpenWatcom 可以通过一次安装面向所有支持的平台。 (我用它从 Linux 构建各种 DOS 和 Windows 测试 EXE。)
OpenWatcom 可以针对很多复古平台:
如果您的项目必须在实模式下运行(即没有 DJGPP),并且您想要比 Open Watcom C/C++ 中的优化器更现代的东西,可以使用 GCC 的一个分支,名为 GCC IA16你可以试试。 (虽然我不知道它对 16 位 x86 生态系统中使用的各种内存模型和调用约定的支持有多完整。)
如果您想要让您在古老硬件上运行 IDE 和编译器的东西,Pacific C编译器和 IDE 将 286 CPU 列为最低要求,但也可以在 DOSEMU 中运行以便轻松集成到基于 Linux 的构建自动化中。
这里有一些其他免费的 DOS C 编译器,尽管它们缺乏 DJGPP 和 OpenWatcom 拥有的庞大生态系统:
您可能还想运行 UPX对您构建的 EXE 文件进行压缩,这样您制作的任何软盘镜像都会有更多的可用空间。 (不要忘记使用 --8086
运行它,如果你的目标是早于 386 的东西。)
是capable压缩 EXE、COM 和 SYS 文件以及使用这种可执行压缩在过去很常见。
(但是,UPX 不压缩的三种主要格式中有两种是 OS/2 和 Windows 3.1 可执行文件。我仍在寻找最佳选择,因为 LxLite 与 OpenWatcom 不兼容-生成的 EXE。)
关于MS-DOS 的 C 编译器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15096609/