Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3003613
  • 博文数量: 523
  • 博客积分: 11908
  • 博客等级: 上将
  • 技术积分: 5475
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-03 15:50
文章分类

全部博文(523)

文章存档

2019年(3)

2013年(4)

2012年(71)

2011年(78)

2010年(57)

2009年(310)

分类: LINUX

2011-06-15 14:56:43

在编译Kphone4.2时,提示以下错误:

c++ -I/usr/lib/qt3/include -Wall -O3 -I. -I../gsm -I../ilbc -I../dissipate2 -DHAVE_CONFIG_H -DSHARE_DIR=\"/usr/local/share/apps/kphone\" -DPO_DIR=\"/usr/local/share/kphone/translations//\" -c -o main.o main.cpp
In file included from main.cpp:5:
kcallwidget.h:70: error: extra qualification ‘KCallWidget::’ on member ‘setDTMFSender’
In file included from main.cpp:7:
kphoneview.h:57: error: extra qualification ‘KPhoneView::’ on member ‘DoCall’
make[1]: *** [main.o] 错误 1
make[1]: Leaving directory `/home/soft/kphone/kphone'
make: *** [all] 错误 2

查找原因如下:

很多比较旧的代码会有如写法
class Foo
{

int Foo::Foo(void);

}
在g++ 4.1以后会报错 extra qualification
直接改为
class Foo
{

int Foo(void);

}
即可

Extra qualification errors are common with gcc4. This means a class is
redundantly mentioned with a class function. Just remove the part before :: on the mentioned line"

Extra qualification error是使用版本4以上的GCC/G++编译C++程序时经常出现的错误。

这是语句中多引用了类的名称--把函数前面::的类名称去掉即可

如:

 std::string Socket::connectionName();

connectionName是类Socket的成员函数,而Socket是std 中type为string的子类.

这里不用重复引用Socket,可直接写成

 std::string connectionName();


阅读(2543) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~