Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: QtXml - проблемы при сборке
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Обработка XML
31512
Здравствуйте Уважаемые.
Я использую XML модуль Qt для чтения/записи конфигурационного файла приложения. Класс, который должен это осуществлять находится в зачаточном состоянии. И сразу наткнулся на проблему.
#ifndef CCONFIGDISPATCHER_H
#define CCONFIGDISPATCHER_H

#include <QObject>
#include <QtXml/QtXml>

class CConfigDispatcher : public QObject
{
Q_OBJECT
private:
QFile ConfigFile;
QDomDocument ConfigDocument;
public:
    CConfigDispatcher(QObject *parent = 0);
    ~CConfigDispatcher();
    bool OpenConfigDocument(QString FileName);
};

#endif
/******************************************************************************/

#include "cconfigdispatcher.h"

CConfigDispatcher::CConfigDispatcher(QObject *parent)
: QObject(parent)
{
}

CConfigDispatcher::~CConfigDispatcher()
{
}

bool CConfigDispatcher::OpenConfigDocument(QString FileName)
{
  ConfigFile.setFileName(FileName);
  return ConfigFile.open(QIODevice::ReadWrite);
}


pro файл проекта;

SUBDIRS += src
TEMPLATE = subdirs
QT += xml
CONFIG += warn_on \
          qt \
          thread


Во время линковки (?) происходит ошибка:
...cconfigdispatcher.cpp:11: undefined reference to `QDomDocument::~QDomDocument()'
...cconfigdispatcher.cpp:5: undefined reference to `QDomDocument::QDomDocument()'


Обшарил всю документацию. Обшарил интернет. Ответ пока не нашёл. Складывается такое ощущение, что отсувствует какая-то из библиотек Qt.
Однако заголовочные файлы на месте. Кто-нибудь сталкивался с такой проблемой?

ОС Fedora 8 64 bit, ядро 2.6.24.3-12.fc8

информация о Qt, полученная через yum:
CODE
# yum info qt
Installed Packages
Name : qt
Arch : i386
Epoch : 1
Version: 3.3.8b
Release: 2.fc8
Size : 8.9 M
Repo : installed
Summary: Разделяемая библиотека для инструмента Qt GUI.
Description:
Qt is a GUI software toolkit which simplifies the task of writing and
maintaining GUI (Graphical User Interface) applications
for the X Window System.

Qt is written in C++ and is fully object-oriented.

This package contains the shared library needed to run qt
applications, as well as the README files for qt.


Name : qt
Arch : x86_64
Epoch : 1
Version: 3.3.8b
Release: 2.fc8
Size : 9.6 M
Repo : installed
Summary: Разделяемая библиотека для инструмента Qt GUI.
Description:
Qt is a GUI software toolkit which simplifies the task of writing and
maintaining GUI (Graphical User Interface) applications
for the X Window System.

Qt is written in C++ and is fully object-oriented.

This package contains the shared library needed to run qt
applications, as well as the README files for qt.
ViGOur
Добавь:
#include <QDomDocument>
в cconfigdispatcher.h, и все будет в порядке.
31512
Цитата(ViGOur @ 17.3.2008, 14:00) *
Добавь:
#include <QDomDocument>
в cconfigdispatcher.h, и все будет в порядке.


CODE

#ifndef CCONFIGDISPATCHER_H
#define CCONFIGDISPATCHER_H

#include <QObject>
#include <QtXml/QtXml>
#include <QtXml/QDomDocument>

class CConfigDispatcher : public QObject
{
Q_OBJECT
private:
QFile ConfigFile;
QDomDocument ConfigDocument;
public:
CConfigDispatcher(QObject *parent = 0);
~CConfigDispatcher();
bool OpenConfigDocument(QString FileName);
};

#endif


Не помогает :( Я и раньше это пробовал, поняв что не в этом проблема удалил строчку.
К тому же и QDomDocument и QtXml содержат #include <qdom.h>
Litkevich Yuriy
я думаю так писать не стоит
#include <QtXml/QDomDocument>
попробуй просто
#include <QtXml>
тогда поидее все что нужно подключится автоматом
ViGOur
Ради эксперимента я создал main.cpp и configdispatcher.h с configdispatcher.cpp, с вот таким pro файлом:
Цитата
QT += xml
CONFIG += warn_on \
qt \
thread

TARGET =
DEPENDPATH += .
INCLUDEPATH += .

# Input
HEADERS += configdispatcher.h
SOURCES += configdispatcher.cpp mail.cpp
У меня все компилится.

Правда я это пробую не на 3.3.8, а на 4.3.2.

Немного поже попробую на тройке.
31512
У меня работает только через #include <QtXml/QtXml>. Вот, кстати, обратил внимание на разницу расположения файлов Qt в Fedora 8 от других дистрибутивов.
В Runtu, например, компилируется и собирается как, например, #include<QtNetwork>, так и #include<QtNetwork/QtNetwork>. У меня же только #include<QtNetwork/QtNetwork>.
В противном случае просто не находит соответствующие файлы.
31512
Я выяснил, что сыпется имеено при ликовке! В интернете есть сообщения о баге типа этого: http://lists.debian.org/debian-qt-kde/2007/12/msg00348.html
Есть и другие сообщения
31512
Спасибо всем! Проблему решил. Проблема была в моих кривых руках, слабой памяти и невнимательности + в вопиющем недоделии самого Qt!
В проекте оказалось 2 pro файла! Во втором я забыл прописать QT += xml
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.