繁体   English   中英

如何将msys2安装到基本mingw目录中

[英]how to install msys2 into base mingw directory

我想知道在MSYS2中是否有一种方法可以指定基本的MinGW / MinGW64目录?

在MSYS(即MSYS-1)中,安装MSYS后,它知道目录结构为/c/mingw/msys/... ,并且如果使用mingw-get安装mingw软件包, /c/mingw/msys/...安装的二进制文件转到/c/mingw/bin 我认为这可能是因为默认的/etc/fsab/mingw挂载。

现在,当我在MSYS2 / MinGW64和MSYS2在/c/mingw/msys64下执行类似操作时,不再安装二进制文件/c/mingw/bin 例如,如果我按如下方式安装clang

pacman -S mingw-w64-x86_64-clang

二进制文件安装到:

/c/mingw/msys64/mingw64/bin/clang.exe

就像MSYS2在自己内部创建另一个mingw64安装一样(使用bin / lib / etc / share ...)。 这使MinGW64感到困惑,因为它报告找不到cannot。 我知道我可以添加另一条路径,但是在根目录中有一个MinGW安装,在MSYS2的子文件夹中有另一个安装,这很奇怪。 而且我怀疑这将来可能会导致工具链不一致。

我的问题是,有没有办法像MSYS一样让MSYS2将MinGW软件包安装到MinGW目录树中?

谢谢

说您“自己内部还有另一个mingw64安装”是对它的错误思考方式。 MSYS2是正在运行节目的系统,您选择将其放置在名为“ C:/ mingw”的文件夹中不会以任何方式使该文件夹成为mingw-w64系统,而您只是植根了MSYS2系统在“ C:/ mingw / msys64”

恐怕MSYS2不允许在选择全局系统根目录(即安装或解压缩MSYS2的文件夹)之外为其3个存储库中的任何一个选择根文件夹。 造成这种情况的主要原因是因为我们使用pacman作为软件包管理器,但由于它是管理整个系统的工具,因此不存在该工具,因此,所有pacman软件包都使用绝对文件夹压缩(相对于全局系统根)。

由于MSYS2(通过Cygwin; Mycrosoft MSYS2的核心在于Cygwin)提供了“ / etc / fstab”,因此您可能会考虑使用它来将“ / mingw {32,64}”放在其他位置,并在某种程度上您可以避免这种情况,但我强烈建议您不要这样做,因为这只会导致问题。 例如,期望能够使用相对路径“ ../”从“ C:/ msys64 / mingw64”到“ C:/ msys64”的本机Windows程序将非常失望,这意味着他们可能会崩溃。 因此,我不会告诉您如何实现这样一个损坏的系统。

您应该尝试将MSYS2安装本身视为一个完整的子系统,在此我们已经做出了一些决定(例如,“ /”,“ / mingw32”和“ / mingw64”文件夹的位置)您可以提高兼容性并删除一些会使问题更加频繁且难以诊断和修复的变量。

由于Windows 260 MAXPATH的限制,我还建议将MSYS2安装到驱动器(任何驱动器)的根目录。 我知道使用UNC路径的限制还远不止于此,但是大多数MSYS2和Windows软件都不使用UNC路径,并且到处都是大小为MAXPATH + 1的硬编码C字符串数组。 这样做还可以帮助您将MinGW-w64存储库视为整个MSYS2系统的子存储库,而不是相反。

供pacman参考,您应该使用以下页面:

pacman.conf(5)手册页pacman技巧

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM