[Qt] Problem z funkcją
Ostatnio zmodyfikowano 2011-01-18 15:36
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: 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 ] ) ); } 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: 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. |
|
malan |
» 2011-01-18 14:25:45 Dolinkowałeś potrzebne liby? |
|
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. |
|
« 1 » |