msys2 没有黑色 window
msys2 no black window
My screenshot
我如何为 MSYS2 上的程序(或脚本)创建启动器,但不显示终端的黑色 window?
我的link:
msys2_shell.cmd -mingw64 -c /c/myfolder/program.exe
要 运行 MSYS2 环境中的程序而不显示 window,您应该 right-click 在桌面上或 Windows 资源管理器中的其他地方,select "New"、select "Shortcut",然后为快捷方式目标输入如下内容:
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 编译的程序子系统(GCC 的 -mwindows
选项),否则 Windows 将在我们 运行 程序时自动启动一个新的控制台。我们将 -w hide
选项传递给 MinTTY,告诉它不要实际显示自己的 window。该选项之后的所有内容都被 MinTTY
解释为对 运行.
的命令
所以 MinTTY 将从 MSYS2 分发 运行 /bin/env
并将其余参数传递给它。这是一个方便的实用程序,实际上是 Linux 和 MSYS2 的标准部分。它将 MSYSTEM
环境变量设置为 MINGW64
(稍后很重要),然后将 运行s /bin/bash
与剩余的 command-line 参数一起设置。 MSYSTEM
变量 select 使用三个 MSYS2 环境中的哪个,它的值为 MSYS2
、MINGW32
或 MINGW64
。
我们将 -l
传递给 Bash,以便它作为登录脚本和 运行 的某些启动脚本。特别是,来自 MSYS2 的 /etc/profile
脚本是必不可少的,因为它查看 MSYSTEM
环境变量,发现它是 MINGW64
,然后设置一堆其他环境变量(例如 PATH
) 给你 MinGW 64 位 shell 环境,或者如果你改变了一些不同的环境 MSYSTEM
.
最后,我们将您的程序名称作为主要参数传递给 bash
,因此它将 运行 在 运行 初始化脚本后启动该程序。
My screenshot
我如何为 MSYS2 上的程序(或脚本)创建启动器,但不显示终端的黑色 window?
我的link:
msys2_shell.cmd -mingw64 -c /c/myfolder/program.exe
要 运行 MSYS2 环境中的程序而不显示 window,您应该 right-click 在桌面上或 Windows 资源管理器中的其他地方,select "New"、select "Shortcut",然后为快捷方式目标输入如下内容:
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 编译的程序子系统(GCC 的 -mwindows
选项),否则 Windows 将在我们 运行 程序时自动启动一个新的控制台。我们将 -w hide
选项传递给 MinTTY,告诉它不要实际显示自己的 window。该选项之后的所有内容都被 MinTTY
解释为对 运行.
所以 MinTTY 将从 MSYS2 分发 运行 /bin/env
并将其余参数传递给它。这是一个方便的实用程序,实际上是 Linux 和 MSYS2 的标准部分。它将 MSYSTEM
环境变量设置为 MINGW64
(稍后很重要),然后将 运行s /bin/bash
与剩余的 command-line 参数一起设置。 MSYSTEM
变量 select 使用三个 MSYS2 环境中的哪个,它的值为 MSYS2
、MINGW32
或 MINGW64
。
我们将 -l
传递给 Bash,以便它作为登录脚本和 运行 的某些启动脚本。特别是,来自 MSYS2 的 /etc/profile
脚本是必不可少的,因为它查看 MSYSTEM
环境变量,发现它是 MINGW64
,然后设置一堆其他环境变量(例如 PATH
) 给你 MinGW 64 位 shell 环境,或者如果你改变了一些不同的环境 MSYSTEM
.
最后,我们将您的程序名称作为主要参数传递给 bash
,因此它将 运行 在 运行 初始化脚本后启动该程序。