• 5726阅读
  • 2回复

: undefined reference to `MyLabel::MyLabel[in-charge](QWidget*)' [复制链接]

上一主题 下一主题
离线rqzrqh
 

只看楼主 倒序阅读 楼主  发表于: 2009-05-03
//mylabel.h
#include <qlabel.h>
#include <qstring.h>
#include <qwidget.h>
class MyLabel:public QLabel
{
   public:
       MyLabel(QWidget *parent);
       ~MyLabel();
};
//mylabel.cpp
#include "mylabel.h"
MyLabel::MyLabel(QWidget* parent):QLable(parent)
{
}
MyLabel::~MyLabel()
{
}
//object.cpp
#include <qapplication.h>
#include "mylabel.h"
int main(int argc,char** argv)
{
QApplication app(argc,argv);
MyLabel *mylabel=new MyLabel(NULL);
QString string("hello,object");
mylabel->setText(string);
mylabel->setAlignment(Qt::AlignVCenter|Qt::AlignHCenter);
mylabel->setGeometry(0,0,180,75);
mylabel->show();
app.setMainWidget(mylabel);
return (app.exec());
}
用 qmake -project
   qmake
出现 mylabel.cpp: In constructor `MyLabel::MyLabel(QWidget*)':
mylabel.cpp:2: class `MyLabel' does not have any field named `QLable'
mylabel.cpp:3: no matching function for call to `QLabel::QLabel()'
/usr/lib/qt-3.1/include/qlabel.h:162: candidates are: QLabel::QLabel(const
   QLabel&)
/usr/lib/qt-3.1/include/qlabel.h:65:                 QLabel::QLabel(QWidget*,
   const QString&, QWidget*, const char* = 0, unsigned int = 0)
/usr/lib/qt-3.1/include/qlabel.h:63:                 QLabel::QLabel(const
   QString&, QWidget*, const char* = 0, unsigned int = 0)
/usr/lib/qt-3.1/include/qlabel.h:61:                 QLabel::QLabel(QWidget*,
   const char* = 0, unsigned int = 0)
make: *** [mylabel.o] Error 1

用  g++ object.cpp -o object -lqt
出现 /tmp/ccRfRuvQ.o(.text+0x4d): In function `main':
: undefined reference to `MyLabel::MyLabel[in-charge](QWidget*)'
collect2: ld returned 1 exit status
求助啊!!!  用的是qt-3.1版本
例子是KDE2\Qt上 的


离线rqzrqh

只看该作者 1楼 发表于: 2009-05-14
今天无意中发现一个例子是把代码合并在一起的,于是把上述代码合并在一起,居然就可以了。。。
不知道以后做大的文件时该怎么处理。。
但是用qmake还是会报错
离线rqzrqh

只看该作者 2楼 发表于: 2009-05-15
今天又试了一下,原来Qmake 出错的原因是文件名是.c,应该是.cpp 。
还有moc原来已经集成在qmake命令中了,不需要额外的去用moc命令
快速回复
限100 字节
 
上一个 下一个