QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 973|回复: 11

简单的“hello world"程序不能通过编译

[复制链接]
发表于 2003-3-6 17:20:32 | 显示全部楼层 |阅读模式
我用的是redhat linux8.0 personal (简体中文版)。
我编了第一个C++程序。
[code:1]
$ vi hello.cpp
//以下为源代码
#include <iostream>
int main()
{
    cout<<"hello world"<<endl;
     return 0;
}//end of  code
$ g++ -o hello hello.cpp

hello.cpp: In function `int main()':
hello.cpp:4: `cout' undeclared (first use this function)
hello.cpp:4: (Each undeclared identifier is reported only once for each
   function it appears in.)
hello.cpp:4: `endl' undeclared (first use this function)
[/code:1]

为什么会出现这种情况,我到时底是那里不对了,问了很多人,他们也说了很多种方法,可就是在我的电脑上编译不过。请各位高手帮忙看下了,谢谢!
发表于 2003-3-6 17:46:35 | 显示全部楼层
应该是#include <iostream.h>吧
回复

使用道具 举报

发表于 2003-3-6 19:23:47 | 显示全部楼层
#include <iostream>
int main
{
        std::cout&lt;&lt;"hello world"&lt;&lt;std::endl;
        return 0;
}

成了!!
回复

使用道具 举报

发表于 2003-3-6 19:27:08 | 显示全部楼层
第一行 应是 #include &lt; iostream&gt;
回复

使用道具 举报

发表于 2003-3-6 19:28:15 | 显示全部楼层
你可以在
#include &lt;........&gt;
等预处理指令完了以后加一个
using namespace std;
因为cout是在std命名空间中定义的,这个指令让所有的std内的标识符暴光。具体可以参见C++标准
也可以在cout前加上std命名空间,如果楼上的老兄的那样。
回复

使用道具 举报

 楼主| 发表于 2003-3-6 21:15:28 | 显示全部楼层
谢谢回复我贴子的几位,但是我已经都试过了---不行的,
如果把源程改为
[code:1]
#include &lt;iostream&gt;
int main&#40;&#41;
&#123;
return 0;
&#125;
[/code:1]
一切都OK,连warning都没有。
回复

使用道具 举报

发表于 2003-3-7 07:06:10 | 显示全部楼层
这个原因我想是因为你的Linux的环境变量的关系吧。我在Windows下运行你的代码完全没有问题,然后我在Red Hat 8.0 Professional下按你的步骤做了一遍,的确出现了你所说的问题。我想这是因为Unix/Linux 默认的编程环境是C语言而不是C++的关系吧。 我按C的格式重新做了一遍,就成功了。
[code:1]#include &lt;iostream.h&gt;  // &lt;---就这里,将你之前用的&lt;iostream&gt;改为&lt;iostream.h&gt;就行了。[/code:1]

解决的办法,一是使用C而不是C++,二是将默认的C环境改成C++环境。
回复

使用道具 举报

 楼主| 发表于 2003-3-7 08:06:28 | 显示全部楼层
to suDragon:对不起,你的方法可以行的,但是加上命名空间却不能通过编译,应该说你的方法也是为cout指定了命名空间呀,能解下吗?
to HOUSCOUS:请教如何把默认的C环境改为C++环境呢,能否给点提示,谢谢
回复

使用道具 举报

发表于 2003-3-7 12:56:18 | 显示全部楼层
我那只是臆测,不太清楚呢。
回复

使用道具 举报

发表于 2003-3-7 18:55:54 | 显示全部楼层
我两种方法都可以.
我的系统是 Linux:kernel 2.5.62,gcc 3.2.2
回复

使用道具 举报

 楼主| 发表于 2003-3-8 20:30:42 | 显示全部楼层
谢谢各位,我已经搞定了,
回复

使用道具 举报

发表于 2003-3-9 09:32:14 | 显示全部楼层
加上个 using namespace std;
应改就没有事了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-16 08:39 , Processed in 0.045237 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表