我正在尝试使用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
现在就是这样:此模块文件由尝试阅读的gfortran
创建。 gfortran
创建事情本身,然后1秒后认为该文件是由其他一些版本创建的!知道这里发生了什么吗?
您可能希望看到编译命令:
mpif90 -c -O3 -ISDF/FORTRAN/include -I/usr/include -Iobj -Jobj -o obj/shared_data.o src/core/shared_data.F90
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.
更新:我希望你们同意这很奇怪。失败的文件位于src/core
。如果我cd
到src/core
并发出此命令:
mpif90 -c -O3 -I../../SDF/FORTRAN/include -I../../obj -J../../obj -o ../../obj/shared_data.o shared_data.F90
它编译得很好!但后来我清除了obj
目录中的所有内容,并{I} cd
两个等级并发出:
mpif90 -c -O3 -ISDF/FORTRAN/include -Iobj -Jobj -o shared_data.o src/core/shared_data.F90
它因上面显示的错误而失败!有什么不同???感谢。