【发布时间】:2021-07-09 01:49:48
【问题描述】:
我想了解预处理器内联如何包含到 Fortran 代码中。使用 C,这很简单:
Test.c:
#include <stdio.h>
int main(void) {
return 0;
}
然后我编译使用:
gcc -E test.c
然后它按预期显示 C 预处理器生成的内容。
现在假设我有这个 Fortran 代码:
Test.f:
program test
include "mpif.h"
call mpi_init
call mpi_finalize
end
然后我运行:
gfortran -E -cpp test.f // For some reason I need -cpp when using -E in Fortran
但我不会得到预期的结果,即生成的嵌入到代码中的包含。
相反,我有这个:
# 1 "test.f"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "test.f"
program test
include 'mpif.h'
call mpi_init
call mpi_finalize
end
我在这里做错了什么?
【问题讨论】:
-
-cpp是Fortran preprocessing directive;如果你想预处理文件,你需要这个标志。
标签: include fortran preprocessor