天嵌 ARM开发社区

 找回密码
 注册
查看: 3297|回复: 7

QT Make出现纳闷的错误

[复制链接]
老许的 发表于 2010-5-24 01:28:58 | 显示全部楼层 |阅读模式
使用QTdesigner 制作了一个简单的ui,使用ui2cpp脚本产生的password.h 文件。修改Makefile后在make过程出现了没有声明password_t(新建的一个slot)的警告。如下图说明:password.h文件是由ui2cpp产生的。头文件包括了qvariant.h   qwidget.h 。Makefile文件也已经检查多次。QTdesigner中确认password_t slot 已经成功新建,成功连接信号。 请高手帮忙,谢谢。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
亚瑟王 发表于 2010-5-25 18:11:54 | 显示全部楼层
错误信息提示是password_b,你给出来的又是password_t,会不会是你写错了啊?
 楼主| 老许的 发表于 2010-5-26 09:53:18 | 显示全部楼层
2# 亚瑟王


是在我帖子中写错了,那请问这个问题到底出在哪里呢
 楼主| 老许的 发表于 2010-5-26 09:55:19 | 显示全部楼层
2# 亚瑟王


贴中password_t 要改为password_b
亚瑟王 发表于 2010-5-26 18:05:20 | 显示全部楼层
把你的代码贴出来吧。
hpxzw520 发表于 2010-5-27 10:07:57 | 显示全部楼层
mark,准备学习QT,现在快毕业了,都学一点,以后再重点发展!
 楼主| 老许的 发表于 2010-5-28 20:32:14 | 显示全部楼层
5# 亚瑟王
Makefile文件
#############################################################################
# Makefile for building password
# Generated by tmake at 04:03, 2010/05/24
#     Project: password
#    Template: app
#############################################################################

####### Compiler, tools and options

CC        =        gcc
CXX        =        g++
CFLAGS        =        -pipe -Wall -W -O2 -DNO_DEBUG
CXXFLAGS=        -pipe -DQWS -fno-exceptions -fno-rtti -Wall -W -O2 -DNO_DEBUG
INCPATH        =        -I$(QTDIR)/include -I$(QPEDIR)/include
LINK        =        g++
LFLAGS        =       
LIBS        =        $(SUBLIBS) -L$(QPEDIR)/lib -L$(QTDIR)/lib -lqpe -lqtopia -lqte
MOC        =        $(QTDIR)/bin/moc
UIC        =        $(QTDIR)/bin/uic

TAR        =        tar -cf
GZIP        =        gzip -9f

####### Files

HEADERS =        password.h
SOURCES =        main.cpp \
                password.cpp
OBJECTS =        main.o \
                password.o
INTERFACES =        password.ui
UICDECLS =        password.h
UICIMPLS =        password.cpp
SRCMOC        =        moc_password.cpp
OBJMOC        =        moc_password.o
DIST        =
TARGET        =        $(QPEDIR)/image/opt/Qtopia/bin/password
DESKTOP=        $(QPEDIR)/image/opt/Qtopia/apps/EmbedSky/password.desktop
ICON        =        $(QPEDIR)/image/opt/Qtopia/pics/password.png       
INTERFACE_DECL_PATH = .

####### Implicit rules

.SUFFIXES: .cpp .cxx .cc .C .c

.cpp.o:
        $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<

.cxx.o:
        $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<

.cc.o:
        $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<

.C.o:
        $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<

.c.o:
        $(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

####### Build rules


all: $(TARGET)
        cp -f password.desktop $(DESKTOP)
        cp -f password.png $(ICON)
$(TARGET): $(UICDECLS) $(OBJECTS) $(OBJMOC)
        $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJMOC) $(LIBS)

moc: $(SRCMOC)

tmake: Makefile

Makefile: password.pro
        tmake password.pro -o Makefile

dist:
        $(TAR) password.tar password.pro $(SOURCES) $(HEADERS) $(INTERFACES) $(DIST)
        $(GZIP) password.tar

clean:
        -rm -f $(OBJECTS) $(OBJMOC) $(DESKTOP) $(ICON) $(TARGET)
        -rm -f *~ core

####### Sub-libraries


###### Combined headers


####### Compile

main.o: main.cpp \
                password.h \
                /opt/EmbedSky/Qte/x86-qtopia-2.2.0/qtopia/include/qtopia/qpeapplication.h

password.o: password.cpp \
                password.h \
                password.ui

password.h: password.ui
        $(UIC) password.ui -o $(INTERFACE_DECL_PATH)/password.h

password.cpp: password.ui
        $(UIC) password.ui -i password.h -o password.cpp





moc_password.o: moc_password.cpp \
                password.h




moc_password.cpp: password.h
        $(MOC) password.h -o moc_password.cpp


password.h 文件
/****************************************************************************
** Form interface generated from reading ui file 'password.ui'
**
** Created: Mon May 24 04:02:07 2010
**      by:  The User Interface Compiler (uic)
**
** WARNING! All changes made in this file will be lost!
****************************************************************************/
#ifndef PASSWORD_H
#define PASSWORD_H

#include <qvariant.h>
#include <qwidget.h>
class QVBoxLayout;
class QHBoxLayout;
class QGridLayout;
class QLabel;
class QLineEdit;
class QPushButton;

class password : public QWidget
{
    Q_OBJECT

public:
    password( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 );
    ~password();

    QLabel* password_t1;
    QPushButton* password_b;
    QPushButton* close_b;
    QLineEdit* password_l;
    QLabel* password_t;

public slots:
    virtual void password_b();

};

#endif // PASSWORD_H
passworf.cpp文件
****************************************************************************
** password meta object code from reading C++ file 'password.h'
**
** Created: Mon May 24 04:02:07 2010
**      by: The Qt MOC ($Id: qt/src/moc/moc.y   2.3.12   edited 2005-10-27 $)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/

#if !defined(Q_MOC_OUTPUT_REVISION)
#define Q_MOC_OUTPUT_REVISION 9
#elif Q_MOC_OUTPUT_REVISION != 9
#error "Moc format conflict - please regenerate all moc files"
#endif

#include "password.h"
#include <qmetaobject.h>
#include <qapplication.h>
#ifdef QWS
#include <qobjectdict.h>
#endif



const char *password::className() const
{
    return "password";
}

QMetaObject *password::metaObj = 0;

#ifdef QWS
static class password_metaObj_Unloader {
public:
    ~password_metaObj_Unloader()
    {
         if ( objectDict )
             objectDict->remove( "password" );
    }
} password_metaObj_unloader;
#endif

void password::initMetaObject()
{
    if ( metaObj )
        return;
    if ( qstrcmp(QWidget::className(), "QWidget") != 0 )
        badSuperclassWarning("password","QWidget");
    (void) staticMetaObject();
}

#ifndef QT_NO_TRANSLATION

QString password::tr(const char* s)
{
    return qApp->translate( "password", s, 0 );
}

QString password::tr(const char* s, const char * c)
{
    return qApp->translate( "password", s, c );
}

#endif // QT_NO_TRANSLATION

QMetaObject* password::staticMetaObject()
{
    if ( metaObj )
        return metaObj;
    (void) QWidget::staticMetaObject();
#ifndef QT_NO_PROPERTIES
#endif // QT_NO_PROPERTIES
    typedef void (password::*m1_t0)();
    typedef void (QObject::*om1_t0)();
    m1_t0 v1_0 = &password::password_b;
    om1_t0 ov1_0 = (om1_t0)v1_0;
    QMetaData *slot_tbl = QMetaObject::new_metadata(1);
    QMetaData::Access *slot_tbl_access = QMetaObject::new_metaaccess(1);
    slot_tbl[0].name = "password_b()";
    slot_tbl[0].ptr = (QMember)ov1_0;
    slot_tbl_access[0] = QMetaData::Public;
    metaObj = QMetaObject::new_metaobject(
        "password", "QWidget",
        slot_tbl, 1,
        0, 0,
#ifndef QT_NO_PROPERTIES
        0, 0,
        0, 0,
#endif // QT_NO_PROPERTIES
        0, 0 );
    metaObj->set_slot_access( slot_tbl_access );
#ifndef QT_NO_PROPERTIES
#endif // QT_NO_PROPERTIES
    return metaObj;
}

请帮忙看看,谢谢。
亚瑟王 发表于 2010-5-29 17:08:35 | 显示全部楼层
晕死,在你的代码中:password.h重复定义了password_b,一个是按键类,另外一个是函数名称。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2024-9-28 02:29 , Processed in 1.038019 second(s), 20 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

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