GCC には、特定の標準ヘッダー用の include ディレクトリが組み込まれています。このリストがどこにあるかを知る必要があります。新しくコンパイルした gcc は、標準ヘッダーが見つからないため、小さなテスト C++ プログラムをコンパイルしません。ファイル システムをより整理するために使用した構成オプションが原因で失敗すると思います。bindir と libdir を設定しましたが、何らかの理由で組み込みの include パスが台無しになったのではないかと思います。
プログラム (dummy.c):
#include <iostream>
void main(){}
指示:
g++ dummy.c
エラー:
dummy.c:1:20: fatal error: iostream: No such file or directory
答え1
プリプロセッサは、何を使用するかを教えてくれます
cpp -x c++ -v
...
#include "..." search starts here:
#include <...> search starts here:
/usr/include/c++/4.4
/usr/include/c++/4.4/i486-linux-gnu
/usr/include/c++/4.4/backward
/usr/local/include
/usr/lib/gcc/i486-linux-gnu/4.4.1/include
/usr/lib/gcc/i486-linux-gnu/4.4.1/include-fixed
/usr/include/i486-linux-gnu
/usr/include
End of search list.
環境変数を設定することでC_INCLUDE_PATH
、検索パスにディレクトリを追加できます。CPLUS_INCLUDE_PATH