[Gelöst] Qt4 und XML

Alles rund um die Programmierung mit Qt
Antworten
heinzw
Beiträge: 11
Registriert: 2. April 2010 22:18

[Gelöst] Qt4 und XML

Beitrag 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
Zuletzt geändert von heinzw am 8. April 2010 13:31, insgesamt 2-mal geändert.
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Verwendest du denn auch qmake und ein eigenes .pro?
Wenn ja kannst du das .pro mal bitte posten?
RavenIV
Beiträge: 267
Registriert: 21. Januar 2009 14:24
Wohnort: Waldshut

Beitrag 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
Linux, das längste Text-Adventure aller Zeiten
heinzw
Beiträge: 11
Registriert: 2. April 2010 22:18

Beitrag 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
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag 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.
heinzw
Beiträge: 11
Registriert: 2. April 2010 22:18

Beitrag 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
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag 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?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
heinzw
Beiträge: 11
Registriert: 2. April 2010 22:18

Beitrag 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
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag 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>
heinzw
Beiträge: 11
Registriert: 2. April 2010 22:18

Beitrag von heinzw »

Ich danke für die zusätzliche Info.
Heinz
Antworten