QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1815|回复: 22

苦恼,很简单,就是编译不过去!

[复制链接]
发表于 2005-7-5 11:07:05 | 显示全部楼层 |阅读模式
# include<string.h>
...
int main()
{
   vector<string> v; //line 10
   ...
}
[zhu@nobody c++]$ g++ linuxfunser.cpp -o linuxfunser
...
linuxfunser.cpp: In function `int main()':
linuxfunser.cpp:10: `string' undeclared (first use this function)
linuxfunser.cpp:10: (Each undeclared identifier is reported only once for each
   function it appears in.)
linuxfunser.cpp:10: template argument 1 is invalid
linuxfunser.cpp:10: template argument 2 is invalid
linuxfunser.cpp:10: ISO C++ forbids declaration of `V' with no type
...

如果按照书上:
#include <string>

...
using namespace std;
则提示找不到文件string

我的系统为rh9.0
gcc version 3.2.2 20030222 (Red Hat Linux 3.2.2-5)
发表于 2005-7-5 13:05:04 | 显示全部楼层
如果是:
#include <string.h>

...
using namespace std;
有没有试过?
回复

使用道具 举报

 楼主| 发表于 2005-7-5 14:13:30 | 显示全部楼层
一样的,还是那几个错误.
是不是我的库老,或是gcc老?
回复

使用道具 举报

发表于 2005-7-5 14:55:50 | 显示全部楼层
[code:1]#include <string>
#include <vector>
using namespace std;
...
[/code:1]
用 g++ (而不是 gcc )编译,如果说找不到 <string> 这个包含文件,那就是你安装的时候有问题。
回复

使用道具 举报

 楼主| 发表于 2005-7-5 17:25:03 | 显示全部楼层
当然是g++ 编译;
查找文件有string和string.h,而且不只一个;
所有环境都是默认安装;

g++编译时就是出错,以前很多类似的错误,很长时间了.

难道是包含文件损坏?或是gcc版本不支持?
回复

使用道具 举报

发表于 2005-7-5 22:13:10 | 显示全部楼层
try -I
回复

使用道具 举报

 楼主| 发表于 2005-7-6 07:33:32 | 显示全部楼层
什么意思?
回复

使用道具 举报

发表于 2005-7-6 08:50:31 | 显示全部楼层
-I 指定搜索包含文件的路径,强制指定一下 <string> 所在的目录试试看
回复

使用道具 举报

 楼主| 发表于 2005-7-6 09:30:19 | 显示全部楼层
能找到string文件。
后来试了几次,发现#include<string.h>后,可以使用字符串操作函数,但是不能使用string对象,是不是包含文件制定错误。
include/下有好几个string.*文件,应该用哪个?
回复

使用道具 举报

发表于 2005-7-6 10:10:03 | 显示全部楼层
string.h里有vector<string>这样的模板? 莫非楼主说的不是一回事情?
回复

使用道具 举报

 楼主| 发表于 2005-7-6 11:30:13 | 显示全部楼层
我略去了一些头文件,其实是有#include<vector.h>的,有了他应该可以使用vector<string>这样的模板了。
问题不在模板,而是string.h头文件是否可用来定义string对象。
回复

使用道具 举报

 楼主| 发表于 2005-7-6 14:46:13 | 显示全部楼层
实在对不起大家,是我的错,我输错字符!       
不过学了好多东西!
回复

使用道具 举报

发表于 2005-7-6 21:20:07 | 显示全部楼层
要注意一点
vector<string>
不是异常安全的
回复

使用道具 举报

发表于 2005-7-6 21:27:52 | 显示全部楼层
Neverwinter:搞错了吧。
回复

使用道具 举报

发表于 2005-7-6 22:46:28 | 显示全部楼层
[quote:fbfeeaec0e="wolf0403"]Neverwinter:搞错了吧。[/quote]
我记得Exceptional C++是这样说的
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-11-5 16:04 , Processed in 0.051171 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

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