微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么在 msys 中构建时 openblas 认为我正在使用 Cygwin

如何解决为什么在 msys 中构建时 openblas 认为我正在使用 Cygwin

我在 MSYS2 下使用一些特定标志构建 OpenBLAS 已有一段时间了。最近,我在 Windows 10 下安装了 MSYS2 的新安装。在执行标准 pacman -Syu 几次然后安装所需的工具 pacman -S gcc gcc-fortran make cmake git 之后,我克隆了 OpenBLAS 存储库,并执行了 make USE_OPENMP=1 USE_LOCKING=1 和完成后,它创建了一个 dll cygopenblas.dll 而不是普通的 libopenblas.dll 并报告它检测到的操作系统为:

OS ... CYGWIN_NT

之前是:

OS ... WINNT

此外,当它在寻找库时,之前(当我之前设置它时)它在 libgomp-1.dll 目录中寻找诸如 C:\msys64\mingw64\bin\ 之类的东西,现在它正在寻找 {{1} } 在 msys-gomp-1.dll 目录中。

我不确定我是否做了不同的事情,或者系统是否以某种方式更新,但我也不知道是什么决定了这些行为差异,我正在寻找一些指导什么控制了 msys 在哪里寻找东西,以及为什么我的操作系统是 CYGWIN_NT,而在我认为它是 WINNT 之前。

我知道在这一轮中,我通过使用“MSYS2”终端快捷方式打开的终端完成了所有 pacman 安装,而我在使用“MSYS2 MinGW 64 位”终端快捷方式打开的终端中构建了我的程序。我很确定我上次也是这样做的,但也许我记错了。

我知道这有点模糊,但任何指导都将不胜感激。此外,对于除了在不同地方查找名称不同但其他所有内容相同或实际情况不同的库之外,是否有任何区别的任何评论,将不胜感激。

解决方法

MSYS2 提供了几种不同的工具链。您正在使用的那个使用 MSYS2 的 Cygwin 分支。

要切换到常规的非 Cygwin MinGW,请执行以下操作:

  • 卸载 gccgcc-fortran
  • 安装 mingw-w64-x86_64-gccmingw-w64-x86_64-gcc-fortran
  • 使用 mingw64.exe 重新启动终端。如果操作正确,提示将以洋红色字母显示 MINGW64,而不是 MSYS

当前的终端模式(MINGW64MSYS)影响环境变量,最明显的是 PATH。您以哪种模式操作 pacman 无关紧要,但它会影响 PATH 中的工具链。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。