我试图了解如何使用g ++和(最终)在Ubuntu上使用Clang从命令行编译C++程序.
我找到了一个解释MakeFiles的网页,我正在按照他们的指示行事.http://mrbook.org/tutorials/make/
我将这四个示例文件下载到他们自己的目录中.
然后我继续运行他们如何在没有MakeFile的情况下手动编译的示例.
g++ main.cpp hello.cpp factorial.cpp -o hello
Run Code Online (Sandbox Code Playgroud)
当我从上面运行命令时,我从g ++收到以下错误:
main.cpp:1:22: fatal error: iostream.h: No such file or directory
compilation terminated.
hello.cpp:1:22: fatal error: iostream.h: No such file or directory
compilation terminated.
Run Code Online (Sandbox Code Playgroud)
我编写c ++的唯一经验是使用IDE,如VS C++ Express或CodeBlocks.是不是编译器应该知道iostream.h是什么以及在哪里找到它?
如何摆脱这个错误,以便程序编译?
谢谢你的帮助.
Ada*_*eld 39
在ISO标准化C++语言之前,头文件被命名<iostream.h>,但是当C++ 98标准发布时,它被重命名为just <iostream>(没有.h).更改要使用的代码#include <iostream>,它应该编译.
您还需要为using namespace std;每个源文件添加一个语句(或者使用std::说明符为每个对iostream函数/对象的引用添加前缀),因为预标准化C++中不存在名称空间.C++ 98将标准库函数和对象放在std命名空间中.
Che*_*Alf 14
<iostream.h> 从来没有成为标准的C++标题,因为它没有进入C++标准.
相反,我们<iostream>在1998年得到了.
使用非标准的东西,比如<iostream.h>或者很好地避免使用教材void main.
但是,作为当前预标准代码的实用解决方案,您可以尝试替换
#include <iostream.h>
Run Code Online (Sandbox Code Playgroud)
同
#include <iostream>
using namespace std;
Run Code Online (Sandbox Code Playgroud)
它不能保证工作,但它可能会起作用.