msys2 无法找到 mingw64

9
我下载了以下内容:

https://mingw-w64.org/doku.php/download/mingw-builds

https://mingw-w64.org/doku.php/download/msys2

并将它们安装在 C:/development/msys64 下。在这个文件夹下,我找到了 msys2.exe 和 mingw64 文件夹,其中包含 bin 文件夹和所有的mingw可执行文件。

我将 C:/development/msys64/mingw64/bin 文件夹添加到 PATH 环境变量中。实际上,我可以从 Windows 命令提示符中调用 gcc。但是,在 msys2 shell 内部,我找不到它们。我的意思是,它们在 /mingw64/bin 中,但在提示符中无法使用。

我确定我错过了一些步骤!


我“修复”了将/mingw64/bin添加到本地环境变量PATH并将gcc.exe复制到同一文件夹中的cc.exe。 - Mark
3个回答

15

从MinGW-w32切换到MinGW-w64的方法

  • 下载MinGW-w64的可执行文件参考EDIT

(可执行文件链接可能会因为未来版本的更改而变化,此链接适用于8.1.0版本,在安装前请确认最新版本)

  • 安装过程(在设置中):
Version: PICK LATEST
Architecture: x86_64
Threads: posix
Exception: seh

如果有人正在尝试将MinGW-w64添加为PATH变量,但无法在C:\ msys64 \ mingw64 \ bin中找到gdb.exe,请尝试在“Program Files”中查找。
可以在以下路径中找到gdb.exe和其他文件:
C:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin

编辑:

在VSCode的launch.json文件中进行了一些更改后,MinGW-w64 GDB调试器开始出现错误,因为存在两个不同文件夹中的MinGW版本,即MINGW和mingw64!

安装路径不能包含任何空格
(即,在"Program Files"中有空格),这将在以后创建冲突。

步骤:

1.卸载PC上安装的所有GCC版本-Cygwin,MSYS2(32位)和mingw64(64位),然后再次安装MinGW-w64,这次使用MSYS2。

如果调试器出现错误并且版本冲突,请重新开始!

2.从此链接下载MSYS2安装程序。

安装过程很简单,请按照网站上提供的步骤操作!

安装路径不能包含任何空格。因此,我们无法在Program Files中安装MinGW-w64。

3.安装完成后:打开MSYS2终端(粉色图标)

使用以下命令更新软件包数据库和基本软件包:

pacman -Syu

接下来,使用以下命令更新其余基础包:

pacman -Su

4. 现在切换到MSYS2 MinGW 64位终端(蓝色图标)

安装C和C++的gcc和g++编译器。

For 64 bit:

pacman -S mingw-w64-x86_64-gcc

安装调试器(gdb)。

For 64 bit:

pacman -S mingw-w64-x86_64-gdb

5. 现在你已经准备好了!

检查版本:

gcc --version
g++ --version
gdb --version

6. 最后,如果还有旧的环境变量,请删除它们并将新的环境变量添加到PATH中!

在使用VSCode调试文件之前,请确保在构建时添加-g标记,否则调试器将忽略断点!

注:将所有版本保存在一个文件夹中非常重要,如果文件夹不同,则以后会变得困难!


如果 gdb.exe 不在 C:\msys64\mingw64\bin 中,则表示您忘记安装其软件包(mingw-w64-x86_64-gdb)。正如其他答案所说,将 MSYS2 与其他 MinGW 发行版混合使用通常不会有好结果。 - HolyBlackCat
这对我有效!其他答案都没用!当从 .exe 文件安装时,gdb.exe 会被创建在 Program Files 而不是 C:\msys64\mingw64\bin 文件夹中。我找了大约一个小时,最终在 Program Files 找到了它!现在我的 g++ 版本是 64 位的,因为我将其设置为 PATH 变量。我认为这可能会帮助未来的某些人,这就是为什么我把它作为答案发布在这里的原因。正如你所说,使用 MYSY2 与其他 MinGW 发行版混合使用通常不会有好结果。感谢您的参与!我很感激! - Vishnu
在我的情况下,这是因为蓝色图标的缘故。 - Phan Văn Tiến

7

MSYS2提供了自己的GCC工具链包,使用这些工具链可能比下载不同的工具链更好。例如,要使用64位MinGW GCC,您需要运行pacman -S x86_64-w64-mingw32-toolchain,然后确保您是使用“MinGW-w64 64-bit Shell”快捷方式(或类似方式)启动MSYS2,以便/mingw64/bin在您的PATH上。

此外,MSYS2不会尊重系统或用户环境变量;默认情况下,它使用自己的PATH。


3
嗨,我遇到了同样的困惑。我先安装了MinGW-w64,然后再安装了MSYS2,为了在msys安装目录中找到mingw32和64的文件夹结构。然后我编辑了“/etc/fstab”,让msys找到了mingw。这样做可以吗? 你认为我应该怎么做? 此外,我安装了MSYS,因为在MinGW-w64中没有make工具可用。 - Sndn
3
我不会编辑fstab,除非有非常好的理由使用不同的工具链,否则我会使用您可以通过pacman安装的官方MSYS2工具链。 - David Grayson

-1

正确的路径是C:\msys64\ucrt64\bin,而不是如此处所示的C:\msys64\mingw64\bin。


根据安装的程序包,两者都可以是有效的。 - HolyBlackCat

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