Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > Ошибка при отладке проекта


Автор: Barabeo 28.2.2013, 08:49
Пример чтения XML файла. Компилится нормально, запускается, далее нужно открыть .xml файл, но он пишет что не может открыть. Но если запустить готовый экзешник - всё работает на ура.
Почему при отладке выдается ошибка?
Открытие .xml файла:
Код

    QFile* file = new QFile("russian.xml");
    if (!file->open(QIODevice::ReadOnly | QIODevice::Text))
    {
        QMessageBox::critical(this,
                              "Bible::parseXML",
                              "Couldn't open russian.xml",
                              QMessageBox::Ok);
        return;
    }
    QXmlStreamReader xml(file);

Автор: Barabeo 28.2.2013, 09:44
Проблема решена прописанием полного пути.

Автор: Jeka178RUS 28.2.2013, 11:25
Чтобы понять причины - посмотри текущий каталог в приложении. Скорее всего ты положил файл в папку debug, а приложение выполняется в каталоге выше

Автор: Barabeo 28.2.2013, 11:57
Цитата(Jeka178RUS @ 28.2.2013,  11:25)
Чтобы понять причины - посмотри текущий каталог в приложении. Скорее всего ты положил файл в папку debug, а приложение выполняется в каталоге выше

Так оно и было.
Про это я и не подумал.
Спасибо за подсказку.

Автор: math64 28.2.2013, 12:48
Откуда запускается приложение, можно узнать с помощью QApplication::applicationDirPath()
Каталог для исполняемого файла удобнее задать явно:
Код

TEMPLATE = app

QT += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

CONFIG(debug, debug|release) {
TARGET = MyAppD
} else {
TARGET = MyApp
}

DESTDIR =  $$PWD/bin


Код

        pixmap.load(QApplication::applicationDirPath() + "/../images/MyPixmap.png");

Автор: borisbn 1.3.2013, 06:15
math64, msvc же  smile 

Автор: math64 1.3.2013, 07:23
msvc наверняка тоже есть способ указать куда складывать экзешник.

Автор: borisbn 1.3.2013, 08:26
Цитата(math64 @  1.3.2013,  07:23 Найти цитируемый пост)
msvc наверняка тоже есть способ указать куда складывать экзешник. 

но не в .pro файле  smile 
я всегда так делаю
user posted image
user posted image



а чтобы Debug с Release не путались - так

user posted image

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)