msys2 找不到 mingw64

Mar*_*ark 5 windows mingw msys2

我下载了:

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 env var。事实上,我可以从 Windows 提示中调用 gcc - 例如。相反,在 msys2 shell 中,我找不到它们。我的意思是,他们在,/mingw64/bin但他们在提示时不可用。

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

Vis*_*hnu 16

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

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

(可执行文件链接可能会在未来版本中更改,这是针对版本 8.1.0,请在从此链接安装之前交叉验证最新版本)

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

如果有人尝试将 MinGW-w64 添加为 PATH 变量但无法找到该gdb.exe文件C:\msys64\mingw64\bin请尝试在程序文件中查找它

C:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin

gdb.exe其他文件位于此目录中。


编辑:

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

安装路径不能包含任何空格(即“Program Files”
中的空格),否则稍后会产生冲突。

脚步:

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

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

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

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

安装路径必须不包含任何空格。因此,我们无法在Program Files.

3.安装完成后:打开MSYS2终端pink icon

使用以下命令更新包数据库和基础包:

pacman -Syu
Run Code Online (Sandbox Code Playgroud)

之后,使用以下命令更新其余基础包:

pacman -Su
Run Code Online (Sandbox Code Playgroud)

4.现在切换到 MSYS2 MinGW 64 位终端( blue icon)

为 C 和 C++ 安装 gcc 和 g++。

对于 64 位:

pacman -S mingw-w64-x86_64-gcc
Run Code Online (Sandbox Code Playgroud)

安装调试器(gdb)。

对于 64 位:

pacman -S mingw-w64-x86_64-gdb
Run Code Online (Sandbox Code Playgroud)

5.现在一切就绪!

检查版本:

gcc --version
g++ --version
gdb --version
Run Code Online (Sandbox Code Playgroud)

6.最后,删除旧的环境变量(如果有)并将新的环境变量添加到PATH!

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

脚注: 将所有版本保存在一个文件夹中非常重要,如果文件夹不同,那么以后的生活就会变得艰难!


Dav*_*son 5

MSYS2 有它自己的 GCC 工具链的包,你最好使用这些工具链而不是下载不同的工具链。例如,要使用 64 位 MinGW GCC,您必须运行pacman -S x86_64-w64-mingw32-toolchain并确保使用“MinGW-w64 64 位 Shell”快捷方式(或类似方式)启动 MSYS2,以便它/mingw64/bin在您的 PATH 中。

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

  • 嗨,我遇到了同样的困惑。我先安装了MinGW-w64,然后安装了MSYS2,以找到mingw32和64的msys安装目录中的文件夹结构。然后我编辑“/etc/fstab”并让msys找到mingw。这样做可以吗?你猜我会怎么做?另外,我安装了 MSYS,因为 MinGW-w64 中没有 make 工具。 (3认同)
  • 我不会编辑 fstab,我会使用你可以用 pacman 安装的官方 MSYS2 工具链,除非有很好的理由使用不同的工具链。 (2认同)