3

我正在开发一个旧项目,该项目仍然包含已弃用的“#include iostream.h”。我知道 iostream.h 已被弃用且不应使用,但此代码必须在其上运行/编译的某些系统是运行 CC 且没有可用 iostream 的旧 Solaris 机器。我的问题是:如何让我的更现代的 g++ 编译器接受 iostream.h 包含。

编辑:编译器找不到 iostream.h 文件,所以我假设没有任何 .h 版本的库可用于 g++。

4

2 回答 2

5

最简单的解决方案可能是创建一个名为的本地头文件iostream.h,它只包含<iostream>和导入命名空间std。然后,为了让编译器允许#include <iostream.h>您将本地路径添加到包含文件搜索路径。对于 g++,这有效:

g++ -I local_folder [other flags] …

顺便说一句,你关于

… 已弃用的“#include iostream.h”

不太正确:这不是被弃用的,因为它从来不是合法的 C++。

于 2013-01-17T20:29:28.417 回答
4

我会退后一步,写另一个你在任何地方都使用的中间头,而不是像这样:

#if defined(sun) || defined(__sun)
# if defined(__SVR4) || defined(__svr4__)
/* Solaris */
#include <iostream>
# else
/* SunOS */
#include "iostream.h"
# endif
#else
/* Sane, modern system */
#include <iostream>
#endif
于 2013-01-17T20:30:38.710 回答