如何解决使用旧版 fortran 编译器版本时,CMake 找不到 MPI
昨天我问了一个相当类似的问题。但这个略有不同。
我在 Arch Linux 上安装了 gcc 10。我需要使用版本
所以我安装了 gcc7-fortran 包,因为这位同事告诉我它曾经与这个编译器一起工作。 CMake 发现它必须使用 mpif90 来编译不调用 gfortran-7 而是 gfortran 版本 10 的整个项目。
我还不知道如何告诉 mpif90 使用另一个编译器作为 gfortran。所以我做了一个小技巧:我将 /usr/bin/gfortran 移动到 /usr/bin/gfortran-10 并建立了从 /usr/bin/gfortran-7 到 /usr/bin/gfortran 的软链接。现在 mpif90 使用版本 7 的 gfortran。太棒了。
现在出现错误。如果我使用 gfortran-10 作为编译器,CMake 能够找到 MPI,但如果我使用 gfortran-7,CMake 不能 能够找到 MPI。
-- Could NOT find MPI_Fortran (missing: MPI_Fortran_WORKS)
CMake Error at /usr/share/cmake-3.19/Modules/FindPackageHandleStandardArgs.cmake:218 (message):
Could NOT find MPI (missing: MPI_Fortran_FOUND) (found version "3.1")
Call Stack (most recent call first):
/usr/share/cmake-3.19/Modules/FindPackageHandleStandardArgs.cmake:582 (_FPHSA_FAILURE_MESSAGE)
CMAKE/modules/FindMPI.cmake:1721 (find_package_handle_standard_args)
CMakeLists.txt:388 (find_package)
有没有人遇到过类似的问题?
提前致谢!
编辑
使用 gfortran-10 时,cmake 会告诉通过此消息查找 MPI
-- Found MPI_Fortran: /usr/lib/openmpi/libmpi_usempif08.so (found version "3.1")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。