C++ ソース コードをコンパイルする方法 (「iostream.h が見つかりません」エラー)

C++ ソース コードをコンパイルする方法 (「iostream.h が見つかりません」エラー)

C++ やその他のプログラミング言語について議論したいわけではありません。Linux Ubuntu で helloworld.cpp をコンパイルする際に何が間違っているのかを知りたいだけです。

私は C++ を学習中なので、手順は次のとおりです。

vimでhello.cppを開き、次のように記述します。

#include <iostream.h>
int main()
{
    cout << "Hello World!\n";`
    return 0;
}

それで、その後ターミナルでこれを試しました

g++ hello.cpp

そして出力は

hello.cpp:1:22: fatal error: iostream.h: No such file or directory
compilation terminated.

何かお勧めはありますか? 私にとって役立つステップバイステップのガイドはありますか? ありがとうございます!

答え1

#include <iostream>ではなく を使用してくださいiostream.h.hこのフォームは非常に古く、何年も前から非推奨になっています。

おそらくあなたが知りたい以上の情報を.h対非.hフォームはこちら: http://members.gamedev.net/sicrane/articles/iostream.html 翻訳: 翻訳: 翻訳

(さらに、std::coutまたは の行を記述する必要がありますusing namespace std;。そうしないと、コンパイラが の定義を見つけられないという次のエラーが発生しますcout。)

答え2

iostream.hに変更する必要があります。私もあなたと同じエラーが発生していましたが、にiostream変更したら正常に動作しました。あなたにもうまくいくかもしれません。iostream.hiostream

つまり、次の行を変更します。

#include <iostream.h>

代わりに次のように言いましょう:

#include <iostream>

標準で定義されている C++ 標準ライブラリ ヘッダー ファイルには.h拡張子がありません。

述べたようにリカルド・ムッリの回答cout、完全修飾名で呼び出す必要もありますstd::cout。または、次の 2 行のいずれか (#includeディレクティブの下、他のコードの上が望ましい) が必要です。

using namespace std;
using std::cout;

2 番目の方法は、名前空間std::cout内のすべての名前std(その一部はプログラムで使用される名前と干渉する可能性がある) を取り込むのではなく、 のみに影響するため、特に本格的なプログラミング プロジェクトでは好ましいと考えられています。

関連情報