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.如果我cd要src/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)
它失败了我上面显示的错误!有什么不同???谢谢.