【问题标题】:why does openblas when building in msys think I'm using Cygwin为什么在msys中构建时openblas认为我正在使用Cygwin
【发布时间】:2021-04-14 03:29:28
【问题描述】:

一段时间以来,我一直在 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.

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

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

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

我知道这有点模糊,但我们将不胜感激。除了在不同的地方寻找不同名称的图书馆之外,任何关于这是否有任何区别的评论,但其他一切都是相同的,或者实际上是不同的,我们将不胜感激。

【问题讨论】:

    标签: mingw mingw-w64 msys2


    【解决方案1】:

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

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

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

    当前终端模式(MINGW64 vs MSYS)会影响环境变量,尤其是PATH。您在pacman 中操作的模式无关紧要,但它会影响PATH 中的工具链。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多