注册 登录
编程论坛 Linux教室

弱弱的问一下

谨慎细微 发布于 2011-03-06 20:47, 1363 次点击
我在linux下编程,在那个vi编辑器里面编写c代码的话头文件#include《stdio.h》,能编译通过的,本人习惯c++,然后把头文件换成#include《iosream》 using namespace std; 为什么编译就报错了,报错是说这个头文件不存在,那么gcc下c++的头文件是什么呢,哪有这方面的资料,求指点,感激涕零
11 回复
#2
pangding2011-03-06 22:27
用 g++ 编译。
#3
pangding2011-03-07 09:54
原来是 iostream 没拼对。以后报这种错误,自己一定要先查查拼写。这种低级错误,要尽量减少。

如果有些单词经常拼错(或者因为手速快容易打错)的话,用 vi,可以加一个 :abbr ,帮助你改拼写错误。
例如大部分 C 程序员都会用到下面这个 :abbr
:abbr #i #include
以节约打字时间。


[ 本帖最后由 pangding 于 2011-3-7 09:57 编辑 ]
#4
wog2011-03-07 15:53
gcc 命令只能编译 C++源文件,而不能自动和 C++程序使用的库连接。
所以,好像要加一个-Wno-deprecated参数用于忽略头文件信赖的警告
不过,我记得以前还可以编译过去,刚刚又试了下,竟然过不去了,
算了,我也在这里等高人吧

#5
pangding2011-03-07 17:19
嗯,就我所知也是连接的时候才会出错。我刚才试了,至少 hello world 级的程序编译能过。
不知道楼上是怎么弄的。我的是 gcc 4.4。

#6
wog2011-03-07 20:27
回复 5楼 pangding
程序代码:
#include <iostream.h>
int main()
{
    cout<<"hello\n"<<endl;
    return 0;
}
然后就这样了
wog@wog-Aspire-5542:~$ g++ c.C
c.C:1: fatal error: iostream.h: 没有那个文件或目录
compilation terminated.

我的gcc版本是
gcc version 4.4.5 (Ubuntu/Linaro 4.4.4-14ubuntu5)
加了-Wno-deprecated也没用
真郁闷,还是c好

#7
pangding2011-03-07 20:47
你写 #include <iostream> 呢?

我的反正没问题
$ cat test.cpp
#include <iostream>
using namespace std;

int main()
{
    cout << "hello world!" << endl;

    return 0;
}

$ gcc -c test.cpp
$



[ 本帖最后由 pangding 于 2011-3-7 21:21 编辑 ]
#8
zjsxwc2011-03-07 20:48
不要用iostream.h
c.C  :
程序代码:

#include <iostream> //不要用iostream.h
using namespace std;
int main()
{
    cout<<"hello\n"<<endl;
    return 0;
}


然后用 g++编译,比如

编译 g++ c.C -o c
运行 c


[ 本帖最后由 zjsxwc 于 2011-3-7 20:51 编辑 ]
#9
wog2011-03-08 12:18
以下是引用zjsxwc在2011-3-7 20:48:29的发言:

不要用iostream.h
c.C  :

#include  //不要用iostream.h
using namespace std;
int main()
{
    cout<<"hello\n"<
    return 0;
}
 
然后用 g++编译,比如  

编译 g++ c.C -o c
运行 c
/usr/bin/ld: cannot open output file c: Is a directory
collect2: ld returned 1 exit status
#10
wog2011-03-08 12:19
难道我的GCC崩坏了??
#11
pangding2011-03-08 19:00
ld 返回了错误,就说明编译已经过了。连接时出的问题。
#12
vfdff2011-03-09 01:14
c语言的后缀是小写的.c
1