6940|2

63

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

QT:multiple definition of错误???????? [复制链接]

源码:tem.h中定义Tem类
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
class Tem : public QWidget
{
   Q_OBJECT    //请关注此处
public:
    Tem(QWidget * parent=0, Qt::WFlags fl=0);
    ~Tem(){};
private slots: //请关注此处
    void readTem();
private:
    int fd ;
    unsigned int tmp;
    QTimer * t;
    QLabel * label1;
    QLabel * label2;
    QLabel * label3;
    QLabel * label4;
    QLabel * label5;
    QLabel * label6;
    QComboBox * box1;
    QComboBox * box2;
    QPushButton * button1;
    QPushButton * button2;
};

Tem::Tem(QWidget * parent, Qt::WFlags fl):QWidget(parent, fl)
{
   setWindowTitle("温度测控");
   setGeometry(10,40,220,140);
   
   label1= new QLabel("当前温度:");
   label2= new QLabel("warning ");
   label3= new QLabel("上限:");
   label4= new QLabel("下限:");
   label5= new QLabel("报警开关:");
   label6= new QLabel;
   box1 =new QComboBox;
   box1->addItem("28", 28);
   box1->addItem("25", 25);
   box2= new QComboBox;
   box2->addItem("12", 12);
   box2->addItem("14", 14);
   button1= new QPushButton("报警:");
   button2= new QPushButton("停止:");
   
   QHBoxLayout * h1= new QHBoxLayout;
   QHBoxLayout * h2= new QHBoxLayout;
   QHBoxLayout * h3= new QHBoxLayout;
   QHBoxLayout * h4= new QHBoxLayout;
   QHBoxLayout * h5= new QHBoxLayout;
   h1->addWidget(label1);
   h1->addWidget(label6);
   h2->addWidget(label2);
   h3->addWidget(label3);
   h3->addWidget(box1);
   h4->addWidget(label4);
   h4->addWidget(box2);
   h5->addWidget(label5);
   h5->addWidget(button1);
   h5->addWidget(button2);
   QVBoxLayout * v= new QVBoxLayout;
   v->addLayout(h1);
   v->addLayout(h2);
   v->addLayout(h3);
   v->addLayout(h4);
   v->addLayout(h5);

   setLayout(v);
/*  fd = open("/dev/18b20", 0);
      if(fd < 0)
    {
        perror("Can't open /dev/18b20 \n");
        exit(1);
    }
    printf("open ds18b20 success \n");*/

  // t= new QTimer(this);
  // connect(t, SIGNAL(timeout()), this, SLOT(readTem()));
  // t->start(3000);
}

void Tem::readTem()
{
        read(fd, &tmp , sizeof(int));
        printf("the currently temperature is %d \n",tmp);
        label6->setText((char *)tmp);
  
}


编译的错误信息如下;
moc_tem.o(.text+0x0): In function `Tem::Tem(QWidget*, QFlags)':
: multiple definition of `Tem::Tem(QWidget*, QFlags)'
main.o(.text+0x0): first defined here
moc_tem.o(.text+0x1320): In function `Tem::Tem(QWidget*, QFlags)':
: multiple definition of `Tem::Tem(QWidget*, QFlags)'
main.o(.text+0x1320): first defined here
moc_tem.o(.text+0x2640): In function `Tem::readTem()':
: multiple definition of `Tem::readTem()'
main.o(.text+0x2640): first defined here
collect2: ld returned 1 exit status
make: *** [tem] 错误 1
当去掉代码中注释行后,可编译成功

最新回复

删除一下上次生成的.o文件试试看  详情 回复 发表于 2010-1-29 01:05
点赞 关注

回复
举报

78

帖子

0

TA的资源

一粒金砂(初级)

沙发
 

极可能是头文件的互相包含引用造成的。
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
删除一下上次生成的.o文件试试看
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表