Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[Qt] Problem z funkcją

Ostatnio zmodyfikowano 2011-01-18 15:36
Autor Wiadomość
programista12
Temat założony przez niniejszego użytkownika
[Qt] Problem z funkcją
» 2011-01-18 08:05:43
Mam kolejny problem z Qt. Tym razem chodzi o funkcję zapisującą dane do pliku XML.
Kod tej funkcji:
C/C++
void MainWindow::SaveBase()
{
    QFileDialog dialog;
    QString filename = dialog.getSaveFileName( this, "Zapisz bazę", NULL, "Pliki XML (*.xml)" );
    QDomDocument doc( "programy" );
    QDomElement root = doc.createElement( "programy" );
    doc.appendChild( root );
   
    for( int i = 0; i < lista.size(); i++ )
    {
        root.appendChild( ProgramToNode( doc, lista[ i ] ) ); //lista to vector struktur Program (zawiera 3 QStringi)
    }
   
    QFile file( filename );
    if( !file.open( QFile::WriteOnly ) )
    {
        QMessageBox::warning( this, "Blad", "Nie udalo sie utworzyc pliku." );
        return;
    }
    QTextStream in( & file );
    in << doc.toString();
    file.close();
}
I kod funkcji ProgramToNode:
C/C++
QDomElement MainWindow::ProgramToNode( QDomDocument & d, const Program & p )
{
    QDomElement cn = d.createElement( "program" );
    cn.setAttribute( "nazwa", p.nazwa );
    cn.setAttribute( "zainstalowany_z", p.zainstalowany_z );
    cn.setAttribute( "cdkey", p.cdkey );
    return cn;
}
Problem leży w tym, że podczas kompilacji wywala błąd "collect2: Id returned 1 exit status". W oknie Komunikaty kompilatora wyświetlają się na czerwono takie błędy:
release/mainwindow.o:mainwindow.cpp:(.text+0x135): undefined reference to `_imp___ZN12QDomDocument13createElementERK7QString'

release/mainwindow.o:mainwindow.cpp:(.text+0x171): undefined reference to `_imp___ZN11QDomElement12setAttributeERK7QStringS2_'

release/mainwindow.o:mainwindow.cpp:(.text+0x25d): undefined reference to `_imp___ZN8QDomNodeD2Ev'

release/mainwindow.o:mainwindow.cpp:(.text+0x65c): undefined reference to `_imp___ZN12QDomDocumentC1ERK7QString'

release/mainwindow.o:mainwindow.cpp:(.text+0x69f): undefined reference to `_imp___ZN12QDomDocument13createElementERK7QString'

release/mainwindow.o:mainwindow.cpp:(.text+0x6ca): undefined reference to `_imp___ZN8QDomNode11appendChildERKS_'

release/mainwindow.o:mainwindow.cpp:(.text+0x6d6): undefined reference to `_imp___ZN8QDomNodeD2Ev'

release/mainwindow.o:mainwindow.cpp:(.text+0x6e8): undefined reference to `_imp___ZN8QDomNodeD1Ev'

release/mainwindow.o:mainwindow.cpp:(.text+0x6f3): undefined reference to `_imp___ZN8QDomNodeD2Ev'

release/mainwindow.o:mainwindow.cpp:(.text+0x73d): undefined reference to `_imp___ZN8QDomNodeD2Ev'

release/mainwindow.o:mainwindow.cpp:(.text+0x8bf): undefined reference to `_imp___ZN12QDomDocumentD1Ev'

release/mainwindow.o:mainwindow.cpp:(.text+0x913): undefined reference to `_imp___ZNK12QDomDocument8toStringEi'

release/mainwindow.o:mainwindow.cpp:(.text+0x965): undefined reference to `_imp___ZN12QDomDocumentD1Ev'

release/mainwindow.o:mainwindow.cpp:(.text+0x998): undefined reference to `_imp___ZN8QDomNodeD2Ev'

release/mainwindow.o:mainwindow.cpp:(.text+0xa8a): undefined reference to `_imp___ZN8QDomNodeD2Ev'

release/mainwindow.o:mainwindow.cpp:(.text+0xad4): undefined reference to `_imp___ZN12QDomDocumentD1Ev'

collect2: ld returned 1 exit status

mingw32-make[1]: *** [release\QCD-Key.exe] Error 1

mingw32-make: *** [release] Error 2

Proces "G:/Qt/mingw/bin/mingw32-make.exe" zakończył się kodem wyjściowym %2.
Błąd podczas budowania projektu QCD-Key (produkt docelowy: Desktop)
Podczas wykonywania kroku budowania "Make"
Do używania XML includuję w mainwindow.h ""QtXml/QDomDocument". Wiem, że problem jest w tej funkcji, bo gdy ją wykomentuję, to program kompiluje się bez błędów.
Proszę o pomoc.
P-26678
malan
» 2011-01-18 14:25:45
Dolinkowałeś potrzebne liby?
P-26682
programista12
Temat założony przez niniejszego użytkownika
» 2011-01-18 15:36:20
W chwili pisania tamtego posta nie, ale po zobaczeniu Twojego posta szybko wygooglowałem odpowiedź. Musiałem w pliku PRO zmienić linijkę
QT += core gui
na
QT += core gui\
            xml
I wszystko działa jak trzeba! Dzięki za odpowiedź! Temat zamykam.
P-26683
« 1 »
  Strona 1 z 1