无法找到iostream.h,fstream.h

时间:2010-02-08 22:15:15

标签: gcc

我有一台32位机器,我正在运行Ubuntu 9.10。我有最新的gcc编译器。我面临的问题是我在2002年开发了一个库。代码是正确的,但是当我尝试构建它时,它给了我像iostream.h这样的错误找不到,错误:fstream.h:没有这样的文件或目录等等。有很多文件因此我无法改变它们。

如果解决了我安装gcc 3.0会解决这些错误吗?如果是,如何在我现有的gcc编译器上安装它。

3 个答案:

答案 0 :(得分:5)

您正在处理预标准C ++库,并且您已经看到它不能使用标准编译器进行编译。您可以通过使用两行#include <iostream>using namespace std;创建iostream.h来尝试快速解决方法,这可能有效。它不可靠,并且可能导致在不方便的时候出现难以发现的错误。

如果这是来自其他地方的库,您可以看到它是否已更新。

要意识到的是代码不再正确。某些时候某些实现可能是正确的,但现在不是。 (你确定它最初用于gcc 3.0吗?标准前编译器是,很好,不是标准的,并且有很多奇怪的东西。避免这是标准的用途。)如果你安装原始系统,你可能无法正确地与库连接,新代码不起作用。不与现代代码接口的库使用有限。

否则,您将不得不放弃不能更改库的态度,并将其转换为标准C ++。可能会有相当容易修复的相当多的错误(如for (int i = 0;...)中的范围),并且可能是一些更微妙的问题。对于某个编译器,代码可能是正确的,但现在不是。

答案 1 :(得分:4)

fstream.h和类似文件是fstream的预标准版本以及现代编译器附带的C ++标准指定的类似文件。这两者通常不兼容。坦率地说,如果没有人在过去的8年中更新过库以符合标准,那么它就不值得使用。

答案 2 :(得分:1)

为什么不能编写脚本来搜索和替换

的所有实例
#include <iostream.h>

#include <iostream>

其他人也一样吗?

<强>更新: 我同意另一个答案,以及下面的评论......我会留下这个答案,因为我不认为这句话

  

有很多文件因此我不能   改变他们

有效:)