![]() |
|
|
![]()
|
|
| gordmiand |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 772 Регистрация: 15.4.2007 Репутация: нет Всего: 0 |
команда make, консольно запущенная из каталога программы (papka/prog/), нормально собирает проект, а как мне собрать этот же проект, стоя в любом другом каталоге?
Например команда make -w papka/prog/Makefile дает ответ, что “papka/prog/Makefile не требует выполнения команд” Понятно, что можно перейти в этот каталог через cd и дать make, но мне надо сборку программы сделать не через терминал, а в другой программе, думаю, что используя QProcess — а как мне в нем «соединить» две команды — cd papka/prog/ и make (чтобы make понимал что именно надо собирать)? |
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 48 Всего: 135 |
> как мне в нем «соединить» две команды — cd papka/prog/ и make
Создай .cmd файл, в котором будет cd и make, и запускай его -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| gordmiand |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 772 Регистрация: 15.4.2007 Репутация: нет Всего: 0 |
Сделал следующее:
1. Так как проект может собираться достаточно долго (минут 5), то я вынужден (?) ставить временной интервал ожидания завершения процесса, иначе он, как я понял, сам завершится через какое-то системное время, не дожидаясь окончания выполнения команды. Можно ли не задавать это время ожидания завершения процесса, то есть чтобы процесс выполнял команду столько, сколько ее это надо и не завершался бы досрочно? Как это сделать? 2. Проект начинает собираться, но хотелось бы в программе видеть этот процесс сборки в режиме реального времени (построчный вывод результатов make-a допустим в listwidget-e). Как это сделать? |
|||
|
||||
| borisbn |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 48 Всего: 135 |
такого ТОЧНО нет.
"вешаешься" на readyReadStandardOutput и читаешь при помощи readAllStandardOutput или как из QIODevice -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
||||
|
|||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 24 Всего: 196 |
|
|||
|
||||
| gordmiand |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 772 Регистрация: 15.4.2007 Репутация: нет Всего: 0 |
А как через QProcess обработать команду, требующую от оператора ответных действий (например ввод пароля после выполнения команды sudo su или scp …)? т. е. как можно программно ввести пароль в ответ на выполнение команды? Понятное дело, что можно (используя ключи) отключить ввод пароля при выполнении команд, его требующих (например при scp), но хотелось бы его все-таки вводить.
|
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 24 Всего: 196 |
gordmiand, для ввода пароля используется прямой доступ к терминалу. А так как в QProcess нет терминала, то ничего не выйдет у тебя. Используй графические аналоги: gksu/gksudo и пр.
|
|||
|
||||
| gordmiand |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 772 Регистрация: 15.4.2007 Репутация: нет Всего: 0 |
но QProcess-то я все равно могу использовать? просто в его start буду передавать не "scp ....", а запускать "gksudo scp ...". Или как мне программно использовать gksudo для программного же выполнения команды scp?
Это сообщение отредактировал(а) gordmiand - 13.9.2013, 19:52 |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 24 Всего: 196 |
gordmiand, почитай инструкцию на gksudo.
|
|||
|
||||
| gordmiand |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 772 Регистрация: 15.4.2007 Репутация: нет Всего: 0 |
а как мне верно использовать gksudo для выполнения удаленного копирования каталога?
команда
выдает ошибку типа
без gksudo данная команда копирования верна, так же как и, например, команда
почему-то здесь параметр (-le) для команды (ps) воспринимается gksudo-м верно, а для scp - нет... |
||||||
|
|||||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 24 Всего: 196 |
gordmiand, тут тебе gksudo не поможет. Почитай инструкцию scp, может он умеет принимать пароль не только с консоли.
По поводу параметра. Подозреваю что надо использовать параметр -- или параметры программы передавать отдельными аргументами. К сожалению, я никогда не использовал gksudo и qprocess. |
|||
|
||||
| gordmiand |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 772 Регистрация: 15.4.2007 Репутация: нет Всего: 0 |
bsa: с программным вводом пароля для scp вроде разобрался ("убрал" ввода пароля для scp)...теперь вопрос в том как мне с помощью все того же QProcess-a зайти удаленно на компьютер (через ssh) и перейти там в папку с скопированной программой (через cd)...как эти две команды мне выполнить в одном контексте qprocess-a (как это было бы в одном сеансе работы терминала)? мне нужно "встать" в папку с программой для ее удаленной сборки (make из данного каталога) и последующего запуска...
|
|||
|
||||
| gordmiand |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 772 Регистрация: 15.4.2007 Репутация: нет Всего: 0 |
можно сделать так
пробую так
запущенная в консоли команда(ы) проходят верно, а через start QProcess-a - нет (просто программа подвисает на выполнении данной команды, хотя она должна выполняться (судя по терминальному ее запуску) достаточно быстро)...почему такое происходит и как мне программно выполнить такую строку команд? Это сообщение отредактировал(а) gordmiand - 7.10.2013, 21:26 |
||||
|
|||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 24 Всего: 196 |
gordmiand, ты уверен, что ssh получает пароль от тебя?
|
|||
|
||||
![]()
|
| Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |