msys2没有黑色窗口

时间:2018-03-01 15:16:54

标签: windows terminal msys2

My screenshot

如何为MSYS2上的程序(或脚本)创建一个启动器,它不会显示终端的黑色窗口?

我的链接:

msys2_shell.cmd -mingw64 -c  /c/myfolder/program.exe

1 个答案:

答案 0 :(得分:2)

要在MSYS2环境中运行程序而不显示窗口,您应右键单击桌面或Windows资源管理器中的其他位置,选择“新建”,选择“快捷方式”,然后为快捷方式输入类似的内容目标:

C:\msys64\usr\bin\mintty.exe -w hide /bin/env MSYSTEM=MINGW64 /bin/bash -lc /c/path/to/your_program.exe

请注意,这里有4条路径。 minttyyour_program.exe的路径是您需要调整的绝对路径。 envbash的路径是相对于MSYS2安装目录的。另请注意,第一个路径必须是标准的Windows路径,因为Windows在运行快捷方式时需要它。

说明

使用MinTTY可能看起来很奇怪,但我们启动的第一个程序需要是<​​em>为Windows子系统编译的程序(-mwindows选项GCC),否则Windows将在我们运行程序时自动启动新的控制台。我们将-w hide选项传递给MinTTY,告诉它不要实际显示自己的窗口。该选项之后的所有内容都由MinTTY解释为要运行的命令。

因此MinTTY将从MSYS2发行版运行/bin/env并将其余参数传递给它。这是一个方便的实用程序,实际上是Linux和MSYS2的标准部分。它将MSYSTEM环境变量设置为MINGW64(稍后很重要),然后使用其余的命令行参数运行/bin/bashMSYSTEM变量选择要使用的三个MSYS2环境中的哪一个,其值为MSYS2MINGW32MINGW64

我们将-l传递给Bash,以便它充当登录脚本,并运行某些启动脚本。特别是,MSYS2中的/etc/profile脚本是必不可少的,因为它查看MSYSTEM环境变量,看到它是MINGW64,然后设置一堆其他环境变量(例如{{ 1}})为您提供MinGW 64位shell环境,或者如果您更改了PATH,则提供了一些不同的环境。

最后,我们将程序的名称作为主要参数传递给MSYSTEM,因此它将在运行初始化脚本后运行该程序。