6

タイトルが示すように、かなり奇妙な問題が発生しています。サンプル ソース コード (libotb を使用) をコンパイルしようとすると、タイトルにあるようなエラーが発生し続けます。奇妙なのは#include <iostream>、エラーが報告されたソース/ヘッダーに存在することです。

一方、上記のファイルからコードを抽出し、別のソースを作成してコンパイルするとg++ <source_file>機能しますが、コンパイルするとg++ -I<path_to_libotb_headers> <source_file>同じエラーが発生しますが、ソースファイルには上記のパスから何も含まれていません。

以下のコメントで述べたように、この問題は単純に発生します

#include <iostream>   

int main                                                                                
{
    std::cerr << "Test";
    return 0;
}
4

4 に答える 4

8
#include <ostream>

それを修正する必要があります。C++11 では、#include <iostream>はすべての をプルすることになって<ostream>いますが、C++11 より前では、個々#includeの を実行する必要がありました。

于 2012-11-20T13:10:39.923 に答える
3

そのはず:

int メイン ()

  • あなたは()を逃した:)
于 2014-10-16T03:15:17.737 に答える
1

インクルードがすべて名前空間を閉じていることを確認してください。以前のヘッダーが名前空間を閉じていない場合、インクルードが誤って名前空間で宣言されている可能性があります。

また、std インクルードをインクルード リストの前に移動して、この問題の特定を試みることもできます。

于 2012-11-20T10:38:34.980 に答える