我有一台32位机器,我正在运行Ubuntu 9.10。我有最新的gcc编译器。我面临的问题是我在2002年开发了一个库。代码是正确的,但是当我尝试构建它时,它给了我像iostream.h这样的错误找不到,错误:fstream.h:没有这样的文件或目录等等。有很多文件因此我无法改变它们。
如果解决了我安装gcc 3.0会解决这些错误吗?如果是,如何在我现有的gcc编译器上安装它。
答案 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>
其他人也一样吗?
<强>更新强>: 我同意另一个答案,以及下面的评论......我会留下这个答案,因为我不认为这句话
有很多文件因此我不能 改变他们
有效:)