Russian Qt Forum
Ноябрь 24, 2024, 17:11
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
QT QProcess and Rotor2.0
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: QT QProcess and Rotor2.0 (Прочитано 3118 раз)
RusMS_
Гость
QT QProcess and Rotor2.0
«
:
Апрель 20, 2007, 18:07 »
У меня есть тулза, написанная с помощью QT framework. Из нее посредством класса QProcess хочу компилировать Rotor2.0 — т.е. сначала вызывать env.bat, потом buildall.cmd, потом все остальное (билдить приложения, вызывать их clix <path_to_application> и т.д.
Но в Rotor2.0 есть некоторые тонкие нюансы — его компилить можно только через cmd, причем в одном и том же окне cmd. Т.е. если мы открыли одно окно, там запустили env.bat, buildall.cmd, то в другом окне вызвать clix <path_to_application> не получится.
Ну так вот. Я пытался создавать процесс через QProcess(все output процесса собираются в QTextEdit), им вызывать сначала env.bat, потом buildall.cmd, так не работает. Когда я вызываю buildall, пишет, что я env.bat не вызвал. Причем это все я делал ОДНИМ процессом(так надеялся, что заработает Работает хоть как-то, если я через QProcess вызываю батник, в котором написал:
chdir D:\Rotor_2.0\sscli20\
call env.bat
call buildall.cmd
clix <path_to_application>
Но так делать плохо, потому что так не получится внось вызвать application, хочется, чтобы можно было всякий раз вызывать application, компилить, в общем, свобода действий чтобы была. Также хочется, чтобы можно было сначала вызвать какой-нибудь кнопочкой из тулзы env.bat, потом buildall, а не сразу все подряд.
Как обойти эти неудобства Rotor'a? Надо как-то эмулировать для Rotor'a, что мы находимся в одном и том же окне cmd. Я думал, что если все делать одним QProcess процессом, будет достаточно. Оказалось, что нет. Rotor воспринимает одно окно cmd, как один сеанс запуска процесса
Записан
Tonal
Гость
QT QProcess and Rotor2.0
«
Ответ #1 :
Апрель 22, 2007, 09:02 »
Судя по всему, env.bat устанавливает какие-то переменные окружения, а все остальные их используют. А QProcess каждый раз создаёт новый процесс с новым окружением.
Можно поступить несколькими способами:
*) Запустить в
QProcess
cmd и заставлять его выполнять комманды через write
*) Написать маленький батничек:
Код:
call env.bat
set prog=%1
call prog %2 %3 %4 %5
и запускать всё через него
*) Можно разобраться, какие именно переменные нужны ротору и установить их самостоятельно через
QProcess::setEnvironment
Записан
RusMS_
Гость
QT QProcess and Rotor2.0
«
Ответ #2 :
Май 08, 2007, 19:16 »
О, тут ответили, оказывается=)
Спасибо большое=)
да, я примерно так и сделал. Я решил забить на то, что каждый раз приходится вызывать env.bat. Т.е. у меня при вызове какого-либо *.exe создается батничек, в котором всякий раз предварительно вызывается env.bat, соотв-но пишет там что-нибудь вроде:
Setting environment for using Microsoft Visual Studio 2005 x86 tools.
32-bit build
Checked Environment
Building for Operating System - NT32
Processor Family - x86
Processor - i386
Build Type - chk
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...