当前位置: 代码迷 >> QT开发 >> qtopia编译失误undefined reference to
  详细解决方案

qtopia编译失误undefined reference to

热度:65   发布时间:2016-04-25 04:34:42.0
qtopia编译出错undefined reference to
为什么我编译一直出现类似的错误,怎么改。。。
-lqtopia2 -lqtopia -lqpe -L/qtopia/qtopia-free-2.2.0/qtopia/lib -L/qtopia/qt-2.3.10/lib -lqte
.obj/release-shared/callover.o(.text+0x6dd): In function `Callover::closethisDialog()':
/qtopia/qtopia-free-2.2.0/qtopia/src/applications/mycall/callover.cpp:58: undefined reference to `Callover::CalloverOperate(int)'
collect2: ld returned 1 exit status
make[1]: *** [mycall] Error 1
make[1]: Leaving directory `/qtopia/qtopia-free-2.2.0/qtopia/src/applications/mycall'
make: *** [all] Error 2

找到callover.cpp(58行)
  yesbtn=new QPushButton(this);
yesbtn->setPixmap(QPixmap(QPEApplication::qpeDir()+ "pics/mycall/yes.png"));
layout4->addMultiCellWidget(yesbtn,3,3,1,1);
connect(yesbtn,SIGNAL(clicked()),this,SLOT(closethisDialog(void)));
......
void Callover::closethisDialog(void)
{
emit(CalloverOperate(0)); //58行
  this->close();
}
在callover.h里面定义的这个信号
signals:
void CalloverOperate(int);
发现如果把58行注释掉,则编译运行都可以,但点击button没反应,也就是说槽函数没有起作用,窗口也一直停在第四界面。
检查mycall.pro文件,.cpp和.h都包含进来了,再检查callover.cpp、callover.h头文件,基本都跟前面一样的,也没有什么可添加了,不知道哪里出错了?

------解决方案--------------------
探讨

在callover.h里面定义的这个信号
signals:
void CalloverOperate(int);
然后在callover.cpp中使用的
yesbtn=new QPushButton(this);
yesbtn->setPixmap(QPixmap(QPEApplication::qpeDir()+ "pics/mycall/yes.png"));
layout4……
  相关解决方案