我试图使用MPI并行化Fortran程序。我使用CMake来构建我的程序。这是很难找到让CMake的创建与Fortran语言对谷歌MPI支持工作makefile文件的支持,但是从我可以收集,我添加了以下命令来我的CMakeLists.txt脚本:如何让CMake构建一个支持MPI的Fortran程序?
find_package(MPI REQUIRED)
add_definitions(${MPI_Fortran_COMPILE_FLAGS})
include_directories(${MPI_Fortran_INCLUDE_DIRS})
link_directories(${MPI_FortranLIBRARY_DIRS})
这将在我的系统上找到MPI,然后设置以下三个命令中的变量。在我的链接行中,我将MPI库变量添加到我的程序需要构建的其他库的列表中。
target_link_libraries(${exe_name} otherlibs ${MPI_FortranLIBRARY_DIRS})
做cmake
然后make
合作建立的程序和程序运行;然而,当我试图更增添这需要我包括mpif.h
包括文件的来源,我的编译由于不能够找到这个头文件失败。我也不能use mpi
,因为编译器在路径中找不到mpi.mod
文件。