以前曾问过类似的问题,但答案并没有直接解决我遇到的问题。我正在尝试在 HPC 机器上编译基于 Fortran 的应用程序。该机器已gfortan安装ifort并在路径中。当我使用 MPI (Open MPI 1.8.8) 包装器时,mpifort它会自动使用ifort,这很好。但出于某种原因,我想用它gfortran来代替。我如何确保mpifort包装器默认为gfortran而不是ifort?
Open MPI 使用的默认 Fortran 编译器mpifort是从$ompi_root/share/openmpi/mpifort-wrapper-data.txt. 构建过程将构建库时选择的 Fortran 编译器存储在那里。可以通过设置OMPI_FC环境变量来覆盖它。这同样适用于 C 包装器 ( OMPI_CC) 和 C++ 包装器 ( OMPI_CXX)。
例子:
$ mpifort -showme:command
ifort
$ env OMPI_FC=gfortran mpifort -showme:command
gfortran
Run Code Online (Sandbox Code Playgroud)
请记住,与 C 和 C++ 不同,英特尔在 Fortran ABI 上不同意 GCC。