2016-08-31 98 views
1

我想用CMake设置特定的MPI编译器(mpiifort)。那么,不是编译器,而是从库中获取库和包含目录。但是在路径中也有mpif90,它在底层使用gfortran,并且有一组不同的包含目录和库。看来CMake中的FindMPI模块坚持先找到mpif90,因此设置了错误的路径。用CMake强制使用特定的MPI编译器

我试过在命令行设置MPI_Fortran_COMPILER=mpiifort,或者设置为FC=mpiifort,但没有任何作用。到目前为止,我发现的唯一解决方法是在当前目录中创建符号链接mpif90 -> mpiifort并添加_MPI_PREFIX_PATH=.。任何其他想法?

编辑:我曾试图环境变量MPI_Fortran_COMPILER,但我不得不设置CMake的变量,而不是。所以这工作:

FC=ifort CC=icc cmake -D MPI_Fortran_COMPILER=mpiifort ... 

回答

1

据有关人士here,如果设置MPI_Fortran_COMPILER不工作,那么你可以简单地设置MPI_Fortran_LIBRARIES和MPI_Fortran_INCLUDE_PATH。