3

非推奨の「#include iostream.h」が含まれている古いプロジェクトに取り組んでいます。iostream.h は非推奨であり、使用すべきではないことは理解していますが、このコードを実行/コンパイルする必要があるシステムの一部は、CC を実行している古い Solaris マシンであり、iostream を利用できません。私の質問は、より現代的な g++ コンパイラが iostream.h のインクルージョンを受け入れるようにするにはどうすればよいかということです。

編集: コンパイラは iostream.h ファイルを見つけることができないため、ライブラリの .h バージョンのいずれも g++ で使用できないと想定しています。

4

2 に答える 2

5

最も簡単な解決策は、名前空間をインクルードしてインポートするiostream.hだけのローカル ヘッダー ファイルを作成することでしょう。次に、コンパイラがローカル パスをインクルード ファイルの検索パスに追加できるようにします。g++ の場合、これは機能します。<iostream>std#include <iostream.h>

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 に答える