Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用CMake强制特定MPI编译器_Cmake - Fatal编程技术网

使用CMake强制特定MPI编译器

使用CMake强制特定MPI编译器,cmake,Cmake,我想用CMake设置一个特定的MPI编译器(mpiFort)。当然,不是编译器,而是从中获取库并包含目录。但是路径中也有mpif90,它在引擎盖下使用gfortran,并且有一组不同的include dir和库。CMake中的FindMPI模块似乎坚持首先定位mpif90,因此设置了错误的路径 我尝试过在命令行中设置MPI\u Fortran\u COMPILER=mpiifort,或者设置FC=mpiifort,但都不起作用。到目前为止,我找到的唯一解决方法是在当前目录中创建一个符号链接mpi

我想用CMake设置一个特定的MPI编译器(
mpiFort
)。当然,不是编译器,而是从中获取库并包含目录。但是路径中也有
mpif90
,它在引擎盖下使用
gfortran
,并且有一组不同的include dir和库。CMake中的
FindMPI
模块似乎坚持首先定位
mpif90
,因此设置了错误的路径

我尝试过在命令行中设置
MPI\u Fortran\u COMPILER=mpiifort
,或者设置
FC=mpiifort
,但都不起作用。到目前为止,我找到的唯一解决方法是在当前目录中创建一个符号链接
mpif90->mpifort
,并添加
\u MPI\u PREFIX\u PATH=。
。还有其他想法吗

编辑:我尝试了环境变量
MPI\u Fortran\u COMPILER
,但我不得不设置CMake变量。因此,这起了作用:

FC=ifort CC=icc cmake -D MPI_Fortran_COMPILER=mpiifort ...
根据消息来源,如果设置MPI_Fortran_编译器不起作用,那么您可以简单地设置MPI_Fortran_库和MPI_Fortran_INCLUDE_路径