LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1714|回复: 15

为什么不能用g++编译一个很简单的一个c++程序?

[复制链接]
发表于 2005-4-19 20:24:05 | 显示全部楼层 |阅读模式
自己编了一个很简单的c++程序 名叫wang。c 为什么用g++编译的时候老是出现错误

g++用的命令是
g++ -o myprograme -v -liostream   wang.c
因为c++中用到了iostream.h 所以连接了这个库

可是为什么每次都是提示找不到这个库 难道不需要连接这个库
还是其他什么原因?
大家可以给个最简单的程序和编译命令吗?我自己再来试试

谢谢大家指教~~~
发表于 2005-4-19 21:00:02 | 显示全部楼层
1、编辑
test.cpp

#include <iostream>

using namespace std;

int main()
{
  cout << "Hello,world!" << endl;
  return (0);
}

2、编译
g++ test.cpp -o test

3、运行
./test

其实我也是刚学,呵呵。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-19 21:47:04 | 显示全部楼层
呵呵 这个过程我知道 但是还是编译不过去
估计还是库连接有问题
难道楼上的就这么做能编译通过 可以运行吗?
回复 支持 反对

使用道具 举报

发表于 2005-4-20 09:36:27 | 显示全部楼层
Post by foolgenius
自己编了一个很简单的c++程序 名叫wang。c 为什么用g++编译的时候老是出现错误

既然是c++程序,就不要用.c的后缀名,改成wang.cpp,再用g++编译。
编译器是根据文件的后缀名来判断文件类型的,你用.c的后缀,它就把程序当成c源程序来编译。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-20 11:17:34 | 显示全部楼层
我改成.cpp文件以后还是不可以编译
还老是提示cout endl这些没有申明
我觉得还是是否包含了头文件的问题 大家有见解?
回复 支持 反对

使用道具 举报

发表于 2005-4-20 11:33:35 | 显示全部楼层
Post by foolgenius
我改成.cpp文件以后还是不可以编译
还老是提示cout endl这些没有申明
我觉得还是是否包含了头文件的问题 大家有见解?

在源文件开头添加

  1. #include <iostream>
  2. using namespace std;
复制代码
回复 支持 反对

使用道具 举报

发表于 2005-4-20 16:04:27 | 显示全部楼层
Post by pupilzeng
在源文件开头添加

  1. #include <iostream>
  2. using namespace std;
复制代码


写 #include <iostream>
不要写 #include <iostream.h>
因为 .h的头文件已经不使用了,当然会提示找不到库文件。

写 using namespace std;
因为 iostream 中的变量都在名字空间 std 中,如果不写这一句,在使用诸如 cin,cout,endl时就要这样写:std::cin,std::cout,std::endl
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-21 11:10:39 | 显示全部楼层
哦 有些明白了 谢谢大家啦
那么我编译.cpp的时候也应该把库iostream 用-liostream连接上吗?
回复 支持 反对

使用道具 举报

发表于 2005-4-21 12:59:24 | 显示全部楼层
已经#include了,不用了
回复 支持 反对

使用道具 举报

发表于 2005-4-21 18:03:08 | 显示全部楼层
Post by foolgenius
哦 有些明白了 谢谢大家啦
那么我编译.cpp的时候也应该把库iostream 用-liostream连接上吗?

这是标准库中的,是在libstdc++中。
g++会自动链接的,不需要用户指定
回复 支持 反对

使用道具 举报

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

本版积分规则

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