我正在开发一个旧项目,该项目仍然包含已弃用的“#include iostream.h”。我知道 iostream.h 已被弃用且不应使用,但此代码必须在其上运行/编译的某些系统是运行 CC 且没有可用 iostream 的旧 Solaris 机器。我的问题是:如何让我的更现代的 g++ 编译器接受 iostream.h 包含。
编辑:编译器找不到 iostream.h 文件,所以我假设没有任何 .h 版本的库可用于 g++。
我正在开发一个旧项目,该项目仍然包含已弃用的“#include iostream.h”。我知道 iostream.h 已被弃用且不应使用,但此代码必须在其上运行/编译的某些系统是运行 CC 且没有可用 iostream 的旧 Solaris 机器。我的问题是:如何让我的更现代的 g++ 编译器接受 iostream.h 包含。
编辑:编译器找不到 iostream.h 文件,所以我假设没有任何 .h 版本的库可用于 g++。
最简单的解决方案可能是创建一个名为的本地头文件iostream.h
,它只包含<iostream>
和导入命名空间std
。然后,为了让编译器允许#include <iostream.h>
您将本地路径添加到包含文件搜索路径。对于 g++,这有效:
g++ -I local_folder [other flags] …
顺便说一句,你关于
… 已弃用的“#include iostream.h”
不太正确:这不是被弃用的,因为它从来不是合法的 C++。
我会退后一步,写另一个你在任何地方都使用的中间头,而不是像这样:
#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