如何将mingw64.exe的输出重定向至stdout或文件?
解决MSYS2 mingw64命令输出无法捕获的问题
直接捕获/stdout或保存输出的方法
1. 绕过mintty,直接调用bash执行
mingw64.exe默认会启动mintty终端导致输出丢失,直接调用MSYS2的bash.exe可以让输出直接回到当前PowerShell窗口,还支持重定向:
# 直接在当前终端输出 PS C:\Users\Jesse\TheProject> C:\msys64\usr\bin\bash.exe -lc "./configure --arguments" # 保存输出到文件(包含标准输出和错误输出) PS C:\Users\Jesse\TheProject> C:\msys64\usr\bin\bash.exe -lc "./configure --arguments" > configure_output.txt 2>&1
注意:替换
C:\msys64为你的MSYS2实际安装路径;-l参数确保bash加载MSYS2的环境变量,保证configure脚本正常运行。
2. 修改mingw64启动参数,禁用mintty弹窗
通过给mingw64.exe传递参数,强制它在当前终端执行命令而不启动mintty:
# 直接输出到当前终端 PS C:\Users\Jesse\TheProject> mingw64.exe -c "./configure --arguments" # 保存输出到文件 PS C:\Users\Jesse\TheProject> mingw64.exe -c "./configure --arguments" > configure_output.txt 2>&1
也可以用--no-start参数:
PS C:\Users\Jesse\TheProject> mingw64.exe --no-start -- ./configure --arguments
替代方案:在MSYS2终端内执行命令
直接从开始菜单启动MSYS2的「MinGW 64-bit」终端,切换到项目目录后执行命令并保存输出:
cd /c/Users/Jesse/TheProject ./configure --arguments > configure_output.txt 2>&1
完成后在Windows路径C:\Users\Jesse\TheProject下即可找到输出文件。
内容的提问来源于stack exchange,提问作者JesseTG
相关产品推荐
相关产品推荐

