MS-DOS 的 C 编译器

标签 c virtualbox dos

<分区>

我在 VirtualBox 虚拟机上安装了 MS-DOS 6.22,一切正常,这样做的目的是编译一个用 C 语言编写的程序,显示和编辑(虚拟)RAM 中的位。但是,我需要一种在虚拟 MS-DOS 操作系统上安装 C 编译器的方法。

最佳答案

以下是其他人遗漏的一些细节:

  1. 没有人提到 DJGPP完全没有。

    它是 GCC 的保护模式 DOS 端口,可能拥有所有开源选项中最多的可用库和指南。 (包括一个 Turbo Vision port 和一个 installation HOWTO )

  2. 无论您想做什么,OpenWatcom ( source ) 可能会满足您的需求。

    1. 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。 .

    2. 如果您不想怀旧,OpenWatcom 捆绑了更新、更好的 DOS/4GW 替代品,例如 DOS/32 和 PMODE/W。

    3. 如果您想玩转 Windows 3.1 编程,OpenWatcom 包括 Win386,这是一个用于 Window 3.x 的 32 位扩展程序,在 Microsoft 生产自己的“Win32s”之前,Sierra 等公司将其用于 Windows 3.1 游戏"32 位 API 插件。

    4. OpenWatcom 可以通过一次安装面向所有支持的平台。 (我用它从 Linux 构建各种 DOS 和 Windows 测试 EXE。)

    5. OpenWatcom 可以针对很多复古平台:

      • COM 文件
      • 实模式 EXE(有一组单独的选项来选择最低 CPU 要求)
      • 保护模式 EXE(您可以选择几个扩展程序)
      • Windows 3.1 EXE(带或不带 Win386 扩展程序)
      • 许多您可能不关心的其他格式
  3. 如果您的项目必须在实模式下运行(即没有 DJGPP),并且您想要比 Open Watcom C/C++ 中的优化器更现代的东西,可以使用 GCC 的一个分支,名为 GCC IA16你可以试试。 (虽然我不知道它对 16 位 x86 生态系统中使用的各种内存模型和调用约定的支持有多完整。)

  4. 如果您想要让您在古老硬件上运行 IDE 和编译器的东西,Pacific C编译器和 IDE 将 286 CPU 列为最低要求,但也可以在 DOSEMU 中运行以便轻松集成到基于 Linux 的构建自动化中。

  5. 这里有一些其他免费的 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/

相关文章:

使用 Oracle 11g 的 Oracle 开发人员 VM

php - 优美的DOS命令错误处理

MySQL C API 自定义值

c - 为什么这个结构的这个成员没有打印出来(C 编程)

c编程gcc错误: assignment from incompatible pointer type [enabled by default]

c - AES key 生成模板中使用的 CKA_VALUE 是什么?

linux - 带有 FBCTF 的虚拟机

Vagrant up 失败并显示警告 : Remote connection disconnect. 正在重试

batch-file - 用户输入-DOS批处理文件

windows - 从单个批处理文件启动多个 shell 提示符