【问题标题】:Include mpi to make file包含 mpi 来制作文件
【发布时间】:2014-03-12 17:35:15
【问题描述】:

我正在尝试将 MPI 编译器包含到我的 makefile 中。 makefile 已经准备好,因此我只需要将 MPI 编译器的地址包含在单独的 env 文件中。但是,这样做是行不通的。我可以通过键入以下内容手动运行 cpp 文件:

mpicxx Demo_00.cpp -o aprogram
./aprogram

我使用以下方法测试 mpi 编译器的位置:

which mpicxx
/usr/bin/mpicxx

在env文件中对应的行是:

MPICXX=/usr/bin/mpicxx

但是,当我尝试“制作”他的 cpp 文件时,我收到以下错误:

make Demo_00
g++     Demo_00.cpp   -o Demo_00
Demo_00.cpp:2:17: fatal error: mpi.h: No such file or directory
compilation terminated.
make: *** [Demo_00] Error 1

cpp 文件与 env 文件和 makefile 位于同一文件夹中。

我不太确定如何识别错误。

感谢您的帮助, 塔尔塔利亚

【问题讨论】:

  • 为什么需要一个 env 文件?运行 mpicxx 而不是 g++ 会做正确的事吗?您没有向我们展示任何涉及的文件。
  • 我正在使用一个使用 makefile 的建模套件,所以我必须在这里顺其自然。
  • 从您的问题和 cmets 中不清楚您是否知道 mpicxx 通常本身不是编译器,而是另一个编译器的包装器。可能在您的安装中,包装的编译器是 g++,这可以解释为什么您会从中收到错误消息。
  • 我不知道这一点,感谢您指出不同之处。但是,如果包装的编译器实际上是 g++,为什么我会收到此错误消息。我基本上是在尝试遵循本教程中的说明(最后一节):repast.sourceforge.net/hpc_tutorial/… 它展示了如何使用 mpicxx 进行编译,并建议通过在上述 env 文件中添加 mpicxx 的路径来自动执行此操作。跨度>
  • 向我们展示一个示例 Makefile。否则,它只是在黑暗中试图帮助你。

标签: makefile mpi


【解决方案1】:

如果要更改 C++ 编译器的名称,则必须更改变量 CXX。这是 make 在编译 C++ 代码时使用的默认变量。

【讨论】:

    【解决方案2】:

    日志文件中的这一行:

    g++     Demo_00.cpp   -o Demo_00
    

    表示您使用的是 g++ 编译器而不是 mpixx。

    通常在 makefiles 中编译器定义位于文件的开头,如下所示:

    CC=g++
    

    只需将其更改为 mpixx

    CC=mpixx
    

    【讨论】:

    • @ Tomasz Bekas 和 MadScientiest:非常感谢您的快速回复。实际上,我在 makefile 中找不到任何显示 CC=g++ 的内容,而且我不确定在哪里可以更改变量 CXX。有没有可能我实际上没有使用这个文件夹中的makefile,而是另一个?如何控制在输入 make 'filename' 时考虑哪个 makefile?
    • 有内置默认值;这可能根本没有在您的 Makefile 中定义。只需尝试make CXX=mpicxxCC 相同。如果可行,请将其添加到 Makefile 的开头。
    • 所以添加 CXX=mpicxx 或 CC=mpixx 并没有改变任何东西,我仍然得到使用 g++ 的消息。
    • 所以我现在没有使用 make Demo_00,而是输入了 make -f makefile Demo_00(我的 makefile 的名称是 'makefile'),以确保使用了这个文件,并且我仍然得到同样的错误信息。
    【解决方案3】:

    感谢大家的回复,我仔细查看了我认为我正在使用的 makefile,结果发现,正如你已经建议的那样,我根本没有使用它。 makefile 只能执行一个特定名称的特定 cpp 文件。因此,每当我输入 make *.cpp 时,我都会使用您已经指出的标准 make。

    再次感谢您的帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-04
      • 2021-07-10
      • 2010-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-19
      相关资源
      最近更新 更多