发布于 2018-03-01 18:04:57
若要在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子系统编译的程序(GCC的-mwindows选项),否则Windows将在运行该程序时自动启动一个新控制台。我们将-w hide选项传递给MinTTY,告诉它不要实际显示自己的窗口。MinTTY将该选项之后的所有内容解释为要运行的命令。
因此,MinTTY将从MSYS2发行版运行/bin/env,并将其余的参数传递给它。这是一个方便的实用程序,它实际上是Linux和MSYS2的标准部分。它将MSYSTEM环境变量设置为MINGW64 (稍后很重要),然后使用命令行参数的其余部分运行/bin/bash。MSYSTEM变量选择要使用的三个MSYS2环境中的哪个,它的值是MSYS2、MINGW32或MINGW64。
我们将-l传递给Bash,以便它充当登录脚本,并运行某些启动脚本。特别是,来自MSYS2的MSYS2脚本是必不可少的,因为它查看MSYSTEM环境变量,看到它是MINGW64,然后设置一组其他环境变量(例如PATH),为您提供MinGW 64位shell环境,或者如果您更改MSYSTEM,则设置一些不同的环境。
最后,我们将程序名作为主参数传递给bash,因此它将在运行初始化脚本后运行该程序。
https://stackoverflow.com/questions/49052830
复制相似问题