Сборка приложений Qt из cmd-строки в виде файла .bat

#qt #batch-file #jenkins #cmd #auto-build

Вопрос:

Я пытаюсь автоматизировать процесс сборки приложения Qt из файла .bat.

Я могу создать приложение Qt из командной строки, вводя каждый cmd по одному. Например, qtenv2.bat, затем vcvars64.bat, а затем qmake. Но когда я помещаю эти cmd в файл .bat и пытаюсь выполнить bat в cmd, происходит странное, т. Е. После запуска qtenv2.bat он не переходит к следующему cmd для vcvar64.bat, он завершает выполнение. Автостроение.файл bat выглядит так, как показано ниже.

введите описание изображения здесь

Поэтому, когда я запускаю это в cmd, это, как показано ниже, останавливается после qtenv2.bat

введите описание изображения здесь

Я хочу, чтобы это продолжалось со следующими cmds в той же консоли(это необходимо для процесса сборки), как показано ниже, где я запускаю каждый cmds шаг за шагом. И то же самое требуется от файла .bat.

введите описание изображения здесь

Я попробовал следующее …. запустите «qtenv2» /min cmd /k вызов qtenv2.bat……но он запустил процесс в отдельной консоли, чего я не хочу.

Любое предложение, как написать файл .bat, чтобы qtenv2.bat запускался, а затем vcvars.bat также запускался в той же консоли с остановкой выполнения.

С уважением, Саян

Комментарии:

1. Используется call для запуска другого пакетного файла

Ответ №1:

Переключение между дисками блокирует ваш файл bat, чтобы продолжить. Просто добавьте /D cd команду, которая должна помочь :

 @echo "setting up Qt env..."
cd /D C:/a/b/c
qtenv.bat
@echo "going to working dir ..."
cd /D D:/works_dir/
$VC_FULL_PATH/vcvars64.bat
@echo "building now ...."
qmake amp;amp; make clean
make