Seite 1 von 1

[Gelöst] Qt4 und XML

Verfasst: 8. April 2010 11:27
von heinzw
Hallo,

ich versuche einen einfachen Test mit XML unter Windows. Bei den ersten Zeilen stosse ich auf Probleme. Liegt vielleicht daran, dass ich ganz neu bei Qt bin. Unter Linux habe ich das gleiche Problem.
Hier mein Code:

Code: Alles auswählen

#include <QtCore/QCoreApplication>
#include <qdom.h>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QDomDocument doc;

    return a.exec();
}
Zuerst findet er qdom.h nicht. Wo kann ich das Verzeichnis angeben?

Ich habe qdom.h in ein include-Verzeichnis kopiert. Dann hat er die Datei gefunden.
Beim Versuch zu übersetzen sagt er

Code: Alles auswählen

mingw32-make: Leaving directory `E:/QtProjects/XMLTest'
debug/main.o: In function `main':
E:\QtProjects\XMLTest/main.cpp:8: undefined reference to `_imp___ZN12QDomDocumentC1Ev'
E:\QtProjects\XMLTest/main.cpp:10: undefined reference to `_imp___ZN12QDomDocumentD1Ev'
E:\QtProjects\XMLTest/main.cpp:10: undefined reference to `_imp___ZN12QDomDocumentD1Ev'
collect2: ld returned 1 exit status
Ich habe keine Ahnung, was das ist. Ich bin aber sicher, dass mir jemand helfen kann.

Ich danke im Voraus.
Heinz

Verfasst: 8. April 2010 11:43
von franzf
Verwendest du denn auch qmake und ein eigenes .pro?
Wenn ja kannst du das .pro mal bitte posten?

Verfasst: 8. April 2010 11:43
von RavenIV
Wenn die .h und die lib nicht gefunden werden, kann Qt nix dafür.
Musst halt die richtigen Verzeichnisse in der Entwciklungsumgebung angeben.

Mit was programmierst Du?
MS VisualStudio? -> Gibt's ein Add-In dafür
Qt Creator? -> sollte alle Qt-Verzeichnisse schon haben
Eclipse? -> gibt's Qt Eclipse Integration

Verfasst: 8. April 2010 11:54
von heinzw
Vielen Dank für eure Antworten.
Ich arbeite unter Windows und Linux mit QtCreator. Ich habe an den Einstellungen von QtCreator nichts geändert.
Die pro-Datei:
#-------------------------------------------------
#
# Project created by QtCreator 2010-04-08T11:12:01
#
#-------------------------------------------------

QT -= gui

TARGET = XMLTest
CONFIG += console
CONFIG -= app_bundle

TEMPLATE = app


SOURCES += main.cpp
Heinz

Verfasst: 8. April 2010 12:04
von franzf
Versuch mal, statt qdom.h direkt QDomDocument einzubinden.
Dann fehlt in dem pro die Unterstützung für xml:

Code: Alles auswählen

QT += xml
Damit sollte das linker-Problem gelöst sein.

Und da du keine Events hast, die abgearbeitete werden müssen sondern nur ein XML-Dokument parsen und bissl daran rumspielen willst brauchst du auch keine QCoreApplication-Instanz.

Die QtCreator-Config sollte eigentlich passen und schon auf die korrekte Installation (samt includes) zeigen.

Verfasst: 8. April 2010 12:22
von heinzw
Danke, QT += xml hat die Lösung gebracht.
Interessehalber noch zwei Fragen:
Wo/wie kann ich include-Verzeichnisse hinzufügen? Auch über die pro?
Wie könnte ich das QDomDocument diret einbinden?

Nochmals herzlichen Dank
Heinz

Verfasst: 8. April 2010 12:28
von Christian81
heinzw hat geschrieben: Danke, QT += xml hat die Lösung gebracht.
Hätte man aber auch durch ein wenig informieren rausfinden können: http://doc.trolltech.com/4.6/qtxml.html#details
heinzw hat geschrieben: Wo/wie kann ich include-Verzeichnisse hinzufügen? Auch über die pro?
Siehe Doku: http://doc.trolltech.com/4.6/qmake-vari ... rence.html
heinzw hat geschrieben: Wie könnte ich das QDomDocument diret einbinden?
Was meinst Du damit?

Verfasst: 8. April 2010 12:38
von heinzw
Hallo Christian,
danke für deine Nachricht.
Ich habe vor 4 Tagen mit Qt begonnen und bin seitdem nur am Lesen. Die Doku ist doch sehr umfangreich und nimmt halt viel Zeit in Anspruch.
franzf hat geschrieben, dass ich QDomDocument direkt einbinden könnte. Daher meine Frage.
Nochmals danke und ich werde weiterlesen.
Heinz

Verfasst: 8. April 2010 13:25
von franzf
heinzw hat geschrieben:franzf hat geschrieben, dass ich QDomDocument direkt einbinden könnte.
Genau genommen hab ich geschrieben statt qdom.h ein QDomDocument einzubinden und dachte das wäre dann klar..

Code: Alles auswählen

// #include <qdom.h>
#include <QDomDocument>

Verfasst: 8. April 2010 13:30
von heinzw
Ich danke für die zusätzliche Info.
Heinz