修复“我正在使用我无法在这台机器上使用的头文件”的第一步是删除这些文件,编译代码并查看问题所在 - 它几乎总是会产生编译器错误,所以你应该能够找到这很容易。
conio.h
允许控制台 io,并且可能需要一些工作才能将其修复到 Linux 中。完全取决于您使用的是什么。
windows.h
解释起来要复杂得多,因为它本质上为您提供了所有的 Windows API 函数,以及大量的类型声明,而且其中有很多。您的程序可能永远不会[直接]使用其中的大多数。
“使用其他地方不存在的头文件”的常见问题之一是您最终使用了头文件中声明的某些类型。例如,windows.h
将声明 LONG、HANDLE 和大量其他类型。然后这些类型在其他地方的结构和函数声明中使用,当您删除windows.h
它时,将导致各种后续问题。
我的方法总是先解决第一个问题,然后再编译。这样做的原因是,如果出现奇怪的东西,编译器经常会“混淆”。这有点像如果你要告诉一个朋友如何开车去你家,你会说“当你看到左边的大橡树时,你就走下一个右边”。你不知道,这棵橡树已经被砍倒了,因为它快死了,现在已经不存在了。所以你的朋友开车到原来那棵橡树的地方,然后在路上的另一棵橡树后面右转。当然,现在所有其他指令都完全没用了,因为你的朋友离正确的道路很远,如果没有新的指令,你永远不会找到你的房子。当编译器在源文件中发现“令人惊讶的”或“缺失的”位时,也会发生同样的事情。因此,修复第一个错误,然后编译、修复、编译,通常可以让您达到代码编译的程度。有时这涉及编写这样的新函数:
int GetTimeOfDay(void)
{
printf("%s:%d:%s: doesn't work yet, exiting...", __FILE__, __LINE__, __func__);
exit(1);
return 0; // to keep compiler happy.
}
编译完所有代码后,您就开始研究如何实现/替换您添加以使其编译的那些函数。