msys2,使用标准的Windows控制台

3
我使用Console2 (链接1链接2), 它类似于标准控制台的封装器,但允许使用ctrl-shift-c和ctrl-shift-v进行复制粘贴。我发现它比msys2自带的控制台更舒适,后者有一些奇怪的ctrl-ins shift-ins问题。而且拥有两个不同的控制台并不好。

我该如何使用Console2启动编译器?我会将C:\msys64\mingw32\bin添加到PATH中,但我不想在PATH中拥有太多exe和dll,也不想因为意外地依赖libgcc_s_dw2-1.dll而分发某些东西。

此外,我需要能够以某种方式在mingw32和mingw64编译器之间切换。

我尝试阅读c:/msys64/msys2_shell.cmd,但不理解其中的内容。

切换到Windows命令行可能需要从Unix shell命令切换到Windows命令。我可以重写一些正在使用的makefile,这不是太大的问题。

也许我可以采用另一种方法,在我的日常生活中使用msys2控制台。我只用它来启动youtube-dl和另一个程序。这将需要使复制粘贴更容易,并提供一些在mingw32和mingw64之间切换的方法。


试试这个项目 https://github.com/userzimmermann/MSYS2-cmd - Aralox
1个回答

2

https://stackoverflow.com/posts/46015587/edit

临时解决方案:创建三个文件g3.batg6.batgg.bat,并将它们放在PATH目录之一中。它们允许暂时添加或删除mingw32或mingw64在PATH中。

g3.bat:

call gg.bat
SET PATH=%PATH%C:\msys64\mingw32\bin;

g6.bat:

call gg.bat
SET PATH=%PATH%C:\msys64\mingw64\bin;

gg.bat:

set PATH=%PATH:C:\msys64\mingw32\bin;=%
set PATH=%PATH:C:\msys64\mingw64\bin;=%

调用此命令以检查结果:echo %PATH%

第二版,尝试不使用前导;

它几乎可以正常工作,但是gg.bat仍然会留下前导的;。我可以使用set PATH=%PATH:;C:\msys64\mingw32\bin=%代替(注意%PATH:右侧的额外;),但如果C:\msys64\mingw32\bin在PATH的开头,它将会出现问题。

此外,我不确定是否需要""

g3.bat:

call gg.bat
SET PATH=%PATH%;C:\msys64\mingw32\bin

g6.bat:

call gg.bat
SET PATH=%PATH%;C:\msys64\mingw64\bin

gg.bat:

set PATH=%PATH:C:\msys64\mingw32\bin=%
set PATH=%PATH:C:\msys64\mingw64\bin=%
set "PATH=%PATH:;;=;%"

第三版,“随便什么”:

gg.bat:

set PATH=%PATH:;C:\msys64\mingw32\bin=%
set PATH=%PATH:;C:\msys64\mingw64\bin=%

set PATH=%PATH:C:\msys64\mingw32\bin;=%
set PATH=%PATH:C:\msys64\mingw64\bin;=%

set PATH=%PATH:C:\msys64\mingw32\bin=%
set PATH=%PATH:C:\msys64\mingw64\bin=%

set PATH=%PATH:;;=;%

@eryksun 谢谢,我尝试修复了它。你能看一下我的新代码吗?可能有几个地方可以改进一下。 - Viktor Smirnov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接