警告#10145没有对文件'A.obj'

时间:2018-07-30 11:53:48

标签: fortran intel-fortran

我在Windows下(如obj扩展名所示)。

我有两个有效的.f90文件A.f90B.f90(放在同一文件夹中)提供给我,其中B.f90使用A.f90,{{ 1}}正在:

B.f90

module B use A ! ... stuff 的代码是

A.f90

我使用以下命令编译module A ! ... stuff

A.f90

现在,我想在对ifort -c -fpp A.f90 ,即其B.f90文件进行重读时编译A.f90

所以我尝试了:

.obj

抛出

ifort:警告#10145:文件'A.obj'没有执行任何操作 在我身上。

是命令

ifort -c B.f90 A.obj

是否在编译ifort -c B.f90 即文件B.f90的过程中是否正确编译A.f90

我希望.obj可以“按B.f90的形式进行编译,因为实际上我有第三个A.f90(包含C.f90),并且在最后,我必须运行命令:

use B

在链接到A,B,C的所有目标文件时编译dll。

1 个答案:

答案 0 :(得分:1)

编译器用来编译文件A所需的有关模块B.f90的信息不在文件A.f90中,而是在文件A.mod中(模块名,后跟.mod扩展名)。默认情况是在运行.mod的目录中创建ifort文件并从中读取文件。因此,如果按照正确的顺序编译文件(执行操作),并且在编译所有这些文件时从同一目录运行ifort,它将有权访问先前编译的模块文件,并且一切正常可以使用简单的命令(例如

)很好
ifort -c B.f90

如果在编译时,编译器无权访问当前编译的文件中use中的模块的模块文件,则会发出错误,并且编译将中止。