【问题标题】:compiling Fortran program and compiler/libraries编译 Fortran 程序和编译器/库
【发布时间】:2017-04-29 00:06:01
【问题描述】:

我正在尝试创建Fortran90-program,并且我已经安装了必要的库(OpenMPI v1.8 和 gfortran)。当我运行make 时出现错误

No underlying compiler was specified in the wrapper compiler data file (e.g., mpicc-wrapper-data.txt)

这是什么意思,我需要做些什么才能让它发挥作用?

【问题讨论】:

  • 这意味着如果您打开该文件,您将无法在其中找到编译器的名称和位置。纠正那个错误,你应该很高兴。在您问之前,不,我不知道如何将这些信息放入该文件中。但 OpenMPI 的文档相对完善,请使用您最喜欢的搜索引擎获得进一步指导。
  • 使用 make -d。它会告诉你它想做什么。

标签: makefile fortran mpi


【解决方案1】:

看起来您安装的 OpenMPI 没有附带 Fortran 编译器(这很常见,尤其是在 OS X 上)。自己获得 gfortran 并不意味着您的 OpenMPI 会找到它。

尝试使用 GCC 编译器套件自己构建 OpenMPI;这很简单,并且在 open-mpi.org 上有很好的解释。基本上,你下载并解压 tarball,然后用类似的东西配置 OpenMPI

mpi-base-dir $./configure --prefix=$HOME/openmpi-1.8 CC=gcc CXX=g++ FC=gfortran
mpi-base-dir $make 
mpi-base-dir $make install

【讨论】:

    【解决方案2】:

    这是什么意思

    这意味着没有在包装编译器数据文件中指定底层编译器your-openmpi-dir/share/openmpi/mpif90-wrapper-data.txtyour-openmpi-dir/share/openmpi/mpifort-wrapper-data.txt

    我需要做什么才能让它工作

    打开提到的文件并设置compiler=gfortran

    【讨论】:

    • 在我的情况下,这个解决方案不起作用——使用FC=gfortran 运行配置显然比简单地将编译器名称放在包装器数据中更多。找到了编译器,但没有找到一些需要的包含,至少在编译 NAS 并行基准时是这样。使用 FC 变量重新运行 configure 和 make 为我修复了它。无论如何都赞成解释错误消息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-03
    • 2016-02-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多