Odd error during release compilation



  • I have code with couple forms in it. When I try to compile it to static i get error:
    @login.cpp:2:22: error: ui_login.h: No such file or directory
    login.cpp: In constructor 'Login::Login(QWidget*)':
    login.cpp:11: error: invalid use of incomplete type 'struct Ui::Login'
    login.h:8: error: forward declaration of 'struct Ui::Login'
    login.cpp:13: error: invalid use of incomplete type 'struct Ui::Login'
    login.h:8: error: forward declaration of 'struct Ui::Login'
    login.cpp: In destructor 'virtual Login::~Login()':
    login.cpp:19: warning: possible problem detected in invocation of delete operato
    r:
    login.cpp:19: warning: invalid use of incomplete type 'struct Ui::Login'
    login.h:8: warning: forward declaration of 'struct Ui::Login'
    login.cpp:19: note: neither the destructor nor the class-specific operator delet
    e will be called, even if they are declared when the class is defined.
    login.cpp: In member function 'void Login::on_buttonBox_accepted()':
    login.cpp:24: error: invalid use of incomplete type 'struct Ui::Login'
    login.h:8: error: forward declaration of 'struct Ui::Login'
    login.cpp:26: error: invalid use of incomplete type 'struct Ui::Login'
    login.h:8: error: forward declaration of 'struct Ui::Login'@

    mingw32-make does couple first files ok, but with this gives me errors.

    @
    //login.h
    #ifndef LOGIN_H
    #define LOGIN_H

    #include <QDialog>

    namespace Ui {
    class Login;
    }

    class Login : public QDialog
    {
    Q_OBJECT

    public:
    explicit Login(QWidget *parent = 0);
    ~Login();
    int actualLandlord;

    private:
    Ui::Login *ui;

    private slots:
    void on_buttonBox_accepted();
    };

    #endif // LOGIN_H
    @
    @
    //login.cpp
    #include "login.h"
    #include "ui_login.h"
    #include "mainwindow.h"
    #include <QDebug>
    #include <QtSql>
    #include <QMessageBox>
    #include <QCryptographicHash>

    Login::Login(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Login)
    {
    ui->setupUi(this);
    this->setFixedSize(this->size());
    }

    Login::~Login()
    {
    delete ui;
    }

    void Login::on_buttonBox_accepted()
    {
    QString string = ui->lineEditPwd->text();
    QString hash = QCryptographicHash::hash(string.toAscii(),QCryptographicHash::Md5).toHex().constData();
    QSqlQuery query("select id from landlord where login = '" + ui->lineEditLogin->text() +
    "' and password ='" + hash + "'");
    query.exec();
    if(query.first() ) {
    int id = 0;
    id = query.value(0).toInt();
    this->actualLandlord = id;
    }
    else {
    QMessageBox::warning(this, trUtf8("Warning"),"Invalid user or password",QMessageBox::Ok);
    }
    }
    @
    But when i run in qt creator I don't have any errors and application starts normally, and everything inside login.cpp works fine.
    I don't know why qmake won't make proper ui_login.h :/



  • Does uic run and generate that header?



  • If not, did you think to include the actual .ui file in your .pro file under the FORMS variable?



  • No, uic generates everything except ui_login.h. Andre, You have right, I've added ui_login.h but now I have another error
    @
    g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-rel
    oc -Wl,-s -mthreads -Wl -Wl,-subsystem,windows -o release\landlord.exe object_script.landlord.Release -L"c:\Qt\STATIC\qt\lib" -L"c:\Qt\STATIC\qt\lib" -lmingw32
    -lqtmain -lQtWebKit -lQtSql -ljscore -lshlwapi -lversion -lQtGui -lQtNetwork -l
    gdi32 -lcomdlg32 -loleaut32 -limm32 -lwinmm -lwinspool -lmsimg32 -lQtCore -lkern
    el32 -luser32 -lshell32 -luuid -lole32 -ladvapi32 -lws2_32
    c:/qt/2010.05/mingw/bin/../lib/gcc/mingw32/4.4.0/../../../../mingw32/bin/ld.exe:
    cannot find -ljscore
    collect2: ld returned 1 exit status
    mingw32-make[1]: *** [release\landlord.exe] Error 1
    mingw32-make[1]: Leaving directory `c:/Qt/STATIC/qt/landlord'
    mingw32-make: *** [release-all] Error 2
    @
    It's mine first attempt to creating release exe file, so Im sure that my lack of knowledge is general problem:), And sorry for that.

    //edit. Everything works fine. Thanks for help.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.