繁体   English   中英

如何编译同时使用 MPI 和 HDF5 的 C++ 文件?

[英]How do I compile a C++ file that uses both MPI and HDF5?

我正在创建 *.h5 文件,所以我一直在编译:

h5c++ -o output myFile.cpp

但是,我添加了 MPI 以加速其中一节中的代码。 同样的编译给了我一个未定义的参考错误。

undefined reference to `MPI_Init'

如何编译代码以便可以使用 MPI 和 HDF5?

您可以告诉 HDF5 包装器使用 MPI 包装器而不是您的 C++ 编译器。 例如,如果您的 MPI 包装器是mpiCC ,您可以简单地

export HDF5_CXX=mpiCC
export HDF5_CLINKER=mpiCC

[此答案已被编辑]

mpicch5cc (以及它们的 C++ 对应物)都不是编译器,而只是包装器,它们只会在编译器调用中添加一些标志。 这些标志通常包括链接库和包含路径。 您实际上可以检查它们!

$ mpicc --showme    # OpenMPI
$ mpicc -show       # MPICH
$ h5cc  -show

所以你的问题的答案是:使用来自两个包装器的所有标志进行编译器调用。

然而,通常你应该把它留给像 CMake 这样的构建系统,它将组装所有相关的编译器标志。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM