正如标题所示,我遇到了一个相当奇怪的问题.当我尝试编译示例源代码(使用libotb)时,我不断收到标题中的错误.奇怪的是,#include <iostream>在报告错误的所述源/头中存在.
另一方面,如果我从所述文件中提取代码并创建一个单独的源并使用g++ <source_file>它编译它,但如果我编译g++ -I<path_to_libotb_headers> <source_file>我得到相同的错误,虽然源文件不包含任何来自所述路径.
如下面的评论所述,这个问题很简单
#include <iostream>
int main
{
std::cerr << "Test";
return 0;
}
Run Code Online (Sandbox Code Playgroud)
#include <ostream>
Run Code Online (Sandbox Code Playgroud)
应该解决它.在C++ 11下,#include <iostream>应该引入所有内容<ostream>,但在C++ 11之前,你必须完成个人#includes.
验证您的 include 是否全部关闭了其名称空间 - 如果先前的标头未关闭其名称空间,则您的 include 可能会意外地在名称空间中声明。
您还可以尝试通过将 std include 移动到包含列表的前面来尝试定位此问题。
| 归档时间: |
|
| 查看次数: |
15807 次 |
| 最近记录: |