gfortran无法读懂自己的创作

bob*_*nto 9 fortran module mpi gfortran fortran90

我正在尝试编译代码gfortran.编译中发生的第一件事就是创建constants.mod.不久之后gfortran告诉我:

Fatal Error: Cannot read module file ‘constants.mod’ opened at (1), because it was created by a different version of GNU Fortran
Run Code Online (Sandbox Code Playgroud)

现在就是这样gfortran 的事情:这个模块文件是由它试图读取它创建的.gfortran创建自己的东西,然后1秒后认为该文件是由其他一些版本创建的!知道这里发生了什么吗?

您可能希望看到编译命令:

mpif90 -c -O3 -ISDF/FORTRAN/include -I/usr/include -Iobj -Jobj -o obj/shared_data.o   src/core/shared_data.F90
Run Code Online (Sandbox Code Playgroud)

shared_data.F90包含constants文件顶部的模块.

编辑:这是编译命令后跟完整的错误消息:

$> mpif90 -c -O3 -ISDF/FORTRAN/include -I/usr/include -Iobj -Jobj -o obj/shared_data.o  src/core/shared_data.F90
src/core/shared_data.F90:67:6:

   USE constants
      1
Fatal Error: Cannot read module file ‘constants.mod’ opened at (1), because it was created by a different version of GNU Fortran
compilation terminated.
Run Code Online (Sandbox Code Playgroud)

更新:我希望你会同意这很奇怪.失败的文件在src/core.如果我cdsrc/core发出此命令:

mpif90 -c -O3 -I../../SDF/FORTRAN/include -I../../obj -J../../obj -o ../../obj/shared_data.o shared_data.F90
Run Code Online (Sandbox Code Playgroud)

它编译得很好!但后来我清理了obj目录中的所有内容,并且我cd升级了两个级别并发出:

mpif90 -c -O3 -ISDF/FORTRAN/include -Iobj -Jobj -o shared_data.o src/core/shared_data.F90
Run Code Online (Sandbox Code Playgroud)

它失败了我上面显示的错误!有什么不同???谢谢.