我可以使用什么样的现代C编译器来构建这个1992年的MS-DOS程序?

时间:2011-10-13 02:48:49

标签: c compiler-construction

我获得了修改1992年建立的MS-DOS程序的源代码。我有EXE文件,它运行正常,但我需要修改源代码。源代码需要以下标题进行编译。

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#include <dos.h>
#include <dir.h>
#include <alloc.h>
#include <ctype.h>
#include <string.h>
#include <mem.h>
#include <values.h>

有谁知道使用了什么,是否有任何现代编译器可以处理这个?我尝试使用Visual Studio 2010和GCC“开箱即用”,但它失败了,因为缺少一些头文件(dir.h,alloc.h,mem.h,values.h)

5 个答案:

答案 0 :(得分:8)

询问它需要具有哪些函数声明,类型声明,全局变量声明和宏可能更有趣。只要它们都在那里,那些东西在标题中的特殊排列就不是很有趣。

所以注释掉有问题的#includes并让编译器抱怨它丢失的位。 然后你知道你在找什么。

答案 1 :(得分:5)

您可以尝试使用Open Watcom编译器,它是为数不多的构建16位DOS可执行文件的相对最新的编译器之一。除了找到旧的MS或Borland编译器(或最初使用的任何编译器)之外,这可能是最简单的路径。

如果要重建不同的平台而不是再次重建DOS,则可能需要对程序本身进行大量更改。这可能是值得的,但可能需要做很多工作并且会有很多令人惊讶的问题。

答案 2 :(得分:4)

您可以尝试使用DJGPP。根据{{​​3}},它可能包含您需要的标题。

答案 3 :(得分:3)

Turbo C++ 1.01,但不那么现代,似乎也有所有这些头文件。我偶尔也会用它。

答案 4 :(得分:1)

a)删除所有头文件 b)尝试编译 c)查找未定义的函数/类型为int的头文件 d)添加头文件 e)重复