Как мне создать лаунчер для программы (или скрипта) на MSYS2, который не показывает мне черное окно терминала?
Моя ссылка:
msys2_shell.cmd -mingw64 -c /c/myfolder/program.exe
Как мне создать лаунчер для программы (или скрипта) на MSYS2, который не показывает мне черное окно терминала?
Моя ссылка:
msys2_shell.cmd -mingw64 -c /c/myfolder/program.exe
Чтобы запустить программу в среде MSYS2 без отображения окна, вы должны щелкнуть правой кнопкой мыши на рабочем столе или в другом месте в проводнике Windows, выбрать «Создать», выбрать «Ярлык», а затем ввести что-то вроде этого для цели ярлыка:
C:\msys64\usr\bin\mintty.exe -w hide /bin/env MSYSTEM=MINGW64 /bin/bash -lc /c/path/to/your_program.exe
Обратите внимание, что здесь есть 4 пути. Пути к mintty
и your_program.exe
являются абсолютными путями, которые вам нужно будет настроить. Пути к env
и bash
относятся к каталогу установки MSYS2. Также обратите внимание, что первый путь должен быть стандартным путем Windows, поскольку Windows ожидает его при запуске ярлыка.
Может показаться странным использовать для этого MinTTY
, но первая программа, которую мы запускаем, должна быть какой-то программой, скомпилированной для подсистемы Windows (опция -mwindows
для GCC), иначе Windows автоматически запустит новую программу. консоль, когда мы запускаем программу. Мы передаем параметр -w hide
в MinTTY, чтобы сообщить ему, что на самом деле не нужно показывать собственное окно. Все после этой опции интерпретируется MinTTY
как команда для запуска.
Таким образом, MinTTY запустит /bin/env
из дистрибутива MSYS2 и передаст ему остальные аргументы. Это удобная утилита, которая на самом деле является стандартной частью Linux, а также MSYS2. Он устанавливает для переменной среды MSYSTEM
значение MINGW64
(что важно позже), а затем запускает /bin/bash
с остальными аргументами командной строки. Переменная MSYSTEM
выбирает, какую из трех сред MSYS2 использовать, и значениями для нее являются MSYS2
, MINGW32
или MINGW64
.
Мы передаем -l
в Bash, чтобы он действовал как сценарий входа и запускал определенные сценарии запуска. В частности, сценарий /etc/profile
из MSYS2 важен, потому что он просматривает переменную среды MSYSTEM
, видит, что это MINGW64
, а затем устанавливает набор других переменных среды (например, PATH
), чтобы предоставить вам 64-битную среду оболочки MinGW, или какая-то другая среда, если вы изменили MSYSTEM
.
Наконец, мы передаем имя вашей программы в качестве основного аргумента bash
, поэтому она запустит эту программу после запуска сценариев инициализации.