LinuxSir.cn,穿越时空的Linuxsir!

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

windows下的程序移植到linux下怎么那么多错误阿

[复制链接]
发表于 2003-5-15 17:53:40 | 显示全部楼层 |阅读模式
我写的一个程序移植到linux下的时候有好多问题,无法编译通过
在windows下写的时候大部分都使用的标准c++库,而出错的大多都是这些标准库。
如我用vector的时候调用at(i)的时候也会报错
 楼主| 发表于 2003-5-15 18:35:18 | 显示全部楼层
程序段:
typedef vector<CallStatus> PCSVector;
PCSVector vec_callstatus;
...
int npos;
...
npos 在某处被赋值
...
PCallStatus pCall = NULL;
if(nos<=vec_callstatus.size())
  pCall = vec_callstatus.at(npos);

编译器出错信息:
no match fuction for call to vector<CallStatus,allocate<CallStatus *>>::at(int &)

不知道这是什么意思
发表于 2003-5-15 20:26:42 | 显示全部楼层
用的是g++吗?
 楼主| 发表于 2003-5-16 08:41:54 | 显示全部楼层
不是,我用KDevelop编译的。
我嫌g++太麻烦,是不是需要自己写makefile文件?
发表于 2003-5-16 11:50:18 | 显示全部楼层
可以不用makefile。直接用g++ -o filename filename.cpp
 楼主| 发表于 2003-5-16 18:11:31 | 显示全部楼层
无双斑竹怎么不解答我的问题阿
发表于 2003-5-16 20:02:14 | 显示全部楼层
刚才没有看到
pCall = vec_callstatus.at(npos);

at返回的是对象
而不是指针
和vec_callstatus[npos]是一样的
你改看先
 楼主| 发表于 2003-5-17 15:49:10 | 显示全部楼层
斑竹可能没看仔细
我的vec_callstatus是PCSVector类型的
typedef vector<CallStatus> PCSVector;
所以它的元素也应该是PCallStatus类型的
奇怪的是,当我把vec_callstatus.at(npos)改为vec_callstatus[npos]编译就能通过了
发表于 2003-5-17 16:03:58 | 显示全部楼层
?????
那你就那样使用吧
at返回的也是里面保存的对象和[]一样
另外stl说明可以在sgi网站上看到
www.sgi.com/tech/stl
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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