Fortran $OPENMP\u FFLAGS不在自动功能中工作

Fortran $OPENMP\u FFLAGS不在自动功能中工作,fortran,openmp,gfortran,autotools,Fortran,Openmp,Gfortran,Autotools,我正在尝试用gnu自动工具编译fortran代码。configure.ac中的openmp特定行是: AC_PROG_FC([gfortran]) AC_OPENMP FCFLAGS="$OPENMP_FCFLAGS -fcheck=all" 如果使用此选项进行编译,则不会获得与omp相关的编译器选项,如中的AC_OPENMP宏所述 如果我明确地将-fopenmp放在$OPENMP\u FFLAGS的位置,只有这样它才能工作 有什么帮助吗?Autoconf通常喜欢在默认情况下为C语言测试所有内

我正在尝试用gnu自动工具编译fortran代码。
configure.ac
中的openmp特定行是:

AC_PROG_FC([gfortran])
AC_OPENMP
FCFLAGS="$OPENMP_FCFLAGS -fcheck=all"
如果使用此选项进行编译,则不会获得与
omp
相关的编译器选项,如中的AC_OPENMP宏所述

如果我明确地将
-fopenmp
放在
$OPENMP\u FFLAGS
的位置,只有这样它才能工作


有什么帮助吗?

Autoconf通常喜欢在默认情况下为C语言测试所有内容,这就是为什么您只能得到
$OPENMP\u CFLAGS
作为
AC\u OPENMP
命令的结果。但是,Autoconf还提供了使用
AC_LANG
命令更改编程语言(因此编译器也会更改)的机制(请查看更多详细信息和一些替代方案)

以下代码已使用命令autoconf 2.69和命令进行了测试:
autoeconf-fiv
(也使用空的Makefile.am文件)

配置的结果执行显示了OpenMP的两个测试,如下所示:

checking for gcc option to support OpenMP... -fopenmp
checking for gfortran option to support OpenMP... -fopenmp
Makefile现在包括
OPENMP\u CFLAGS
OPENMP\u FCFLAGS
定义,如下所示:

...
MKDIR_P = /bin/mkdir -p
OBJEXT = o
OPENMP_CFLAGS = -fopenmp
OPENMP_FCFLAGS = -fopenmp
PACKAGE = omp-fortran-sample
...

怎么样
$OPENMP\u FCFLAGS
?没有变化…它仍然没有拾取OPENMP\u FCFLAGS我不太了解自动工具,但是
AC\u OPENMP
行不应该在
AC\u PROG\u FC([gfortran])之后吗
?考虑到后者最有可能设置Fortran编译器,人们会认为OpenMP检测必须在设置编译器之后执行,而不是之前。是的……你是对的……我已经这样做了。但这不会影响结果您是否收到任何错误消息?运行时,
configure
说明了什么?
...
MKDIR_P = /bin/mkdir -p
OBJEXT = o
OPENMP_CFLAGS = -fopenmp
OPENMP_FCFLAGS = -fopenmp
PACKAGE = omp-fortran-sample
...