Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запуск gcc через QProcess, В дебаг прога работает, в релиз нет! 
V
    Опции темы
andrew_121
Дата 18.5.2009, 06:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 11
Всего: 33



Утро доброе!
Программа, используя QProcess запускает gcc компилятор.
Так вот, собранная в дебаг-версии работает. Но собранная в релизе нет! Процессу передаются параметры для запуска компилера. stdout и stderr записываю в файл. Так вот компилер говорит что не найдены локальные хедеры, хотя они в каталоге с маин.срр. В аргументах передаю компилеру пути для айнклудов.
В общем вопрос в том, почему в дебаг сборке работает, а в релиз нет?!



--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
Любитель
Дата 18.5.2009, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 16
Всего: 92



Модератор: Название темы должно отражать ее суть!

Добавлено через 10 секунд
PS Тему перименовал


--------------------
PM MAIL ICQ Skype   Вверх
andrew_121
Дата 18.5.2009, 19:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 11
Всего: 33



Гм... Все что только могло прийти в голову, перепробовал. Все то же smile 


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
Любитель
Дата 18.5.2009, 21:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 16
Всего: 92



Как запускаешь программу? Что конкретно получаешь в stdout и stderr? Переменные окружения?


--------------------
PM MAIL ICQ Skype   Вверх
andrew_121
Дата 18.5.2009, 22:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 11
Всего: 33



Любитель, Да всё с программой нормально! Добавил отладочные сообщения! С путями все правильно.
Так в дебаг сборке она работает. Может что-то с Кут? )


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
Любитель
Дата 18.5.2009, 23:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 16
Всего: 92



Ну причём тут Qt как таковая?! Запускается ж у тебя процесс? Что выводит конкретно?


--------------------
PM MAIL ICQ Skype   Вверх
andrew_121
Дата 19.5.2009, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 11
Всего: 33



Цитата(Любитель @  18.5.2009,  23:40 Найти цитируемый пост)
Что выводит конкретно?

Говорит что мои хедеры не найдены. А они туточки data/*.h


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
SABROG
Дата 19.5.2009, 21:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 81
Всего: 91



Цитата(andrew_121 @ 19.5.2009,  21:01)
А они туточки data/*.h

Туточки где именно?
  • release/data/*.h
  • debug/data/*.h


Это сообщение отредактировал(а) SABROG - 19.5.2009, 21:53


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
andrew_121
Дата 19.5.2009, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 11
Всего: 33



SABROG, Вот структура каталогов.

./programm.exe
./release
./debug
./data
./mingw

Так вот. Программа запускает g++ и передает ему аргументы. Тот должен скомпилить ./data/main.cpp, который включает в себя хедеры которые лежат там же. Но компилер сообщает что не найдены.


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
Любитель
Дата 19.5.2009, 23:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 16
Всего: 92



Ещё раз - покажи, как конкретно (аргументы) запускаешь, и покажи энввары в это время (из программы получи лучше).


--------------------
PM MAIL ICQ Skype   Вверх
SABROG
Дата 19.5.2009, 23:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 81
Всего: 91



А почему programm.exe находится не в release/debug? Ты её вручную оттуда перетаскиваешь что ли?


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
andrew_121
Дата 19.5.2009, 23:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 11
Всего: 33



Код

struct MingwPaths {
    QString bin;
    QString lib;
    QString include;
    QString gcc;
    QString gpp;
    QString cpp;
    QString ld;
    QString ar;
    QString as;
    QString make;
};

///////////////////////////////////////////////////////////////////////////////

   process = new QProcess(this);
   process->setWorkingDirectory(curr);
   process->setStandardErrorFile("log/err.log");
   process->setStandardOutputFile("log/out.log");
   connect(    process, SIGNAL(finished(int,QProcess::ExitStatus)),
                this, SLOT(OnFinishCreating())
            );
   /**/
   QString pn = "-o" + ui->ProgrammName->text();
   QString app;
   QStringList args;
   app = QLatin1String(qPrintable(mingw.bin + "/gcc.exe"));
   args    << QLatin1String(qPrintable("-I" + curr + "/data"))
            << QLatin1String(qPrintable("-I" + temp))
            << QLatin1String("-w")
            << QLatin1String("-s")
            << QLatin1String("-Os")
            << QLatin1String("-mwindows")
            << QLatin1String(qPrintable(pn))
            << QLatin1String(qPrintable(curr + "/data/main.cpp"))
            << QLatin1String(qPrintable(mingw.lib + "/libstdc++.a"))
            << QLatin1String(qPrintable(mingw.lib + "/libcomdlg32.a"))
            << QLatin1String(qPrintable(mingw.lib + "/libshlwapi.a"))
            << QLatin1String(qPrintable(mingw.lib + "/libgdi32.a"));

   process->start(app, args);

Цитата

А почему programm.exe находится не в release/debug? Ты её вручную оттуда перетаскиваешь что ли?

Нет. Так настроил сборку.


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
SABROG
Дата 20.5.2009, 00:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 81
Всего: 91



Цитата(andrew_121 @  19.5.2009,  23:41 Найти цитируемый пост)
QLatin1String(qPrintable(curr + "/data/main.cpp"))

Слушай, жесть какая. Разве так нельзя?

Код

args    << QLatin1String("-I") + curr + QLatin1String("/data")))
            << QLatin1String("-I") + temp)
            << QLatin1String("-w")
            << QLatin1String("-s")
            << QLatin1String("-Os")
            << QLatin1String("-mwindows")
            << pn
            << curr + QLatin1String("/data/main.cpp")
            << mingw.lib + QLatin1String("/libstdc++.a")
            << mingw.lib + QLatin1String("/libcomdlg32.a")
            << mingw.lib + QLatin1String("/libshlwapi.a")
            << mingw.lib + QLatin1String("/libgdi32.a");


А то мне кажется сплошной оверхед.


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
andrew_121
Дата 20.5.2009, 00:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 11
Всего: 33



SABROG, передавать аргументы процессу, рекомендуется через QLatin1String(). Да и не в этом вопрос.


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
Любитель
Дата 20.5.2009, 02:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 16
Всего: 92



Ок. А откуда берётся переменная curr у тебя?


--------------------
PM MAIL ICQ Skype   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.1125 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.