我正在尝试使用 autoconf 来检查用于编译我的代码的 gfortran 版本。如何以可移植的方式安全地获取版本号?
最简单的方法是简单地使用gfortran -dumpversion
,但我读到这种方法存在一些问题(例如,在我的机器上,它不返回补丁级别编号)。我在文档中找到的选项 -dumpfullversion
似乎没有实现(我收到一个 fatal error )。
相反,我尝试使用 gfortran --version
或 gfortran -v
。我的第一次尝试如下:
GFORTRAN_VERSION=`gfortran -v 2>&1 | $AWK 'END { print }' | $AWK '{ print $3 }'`
其中$AWK
包含由AC_PROG_AWK
找到的awk类型程序。它在我测试过的所有 Linux 机器上都能完美运行。但是,假设 gfortran -v 始终在其输出最后一行的第三个位置返回版本号似乎并不合理。例如,这种方法适用于 MacOS 还是 Windows?
非常欢迎任何建议,提前非常感谢!
最佳答案
您可以编写一个简短的程序来使用预处理器定义,如下所示
program p
implicit none
write(*,*) __GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__
end program p
参见What are the gcc predefined macros for the compiler's version number?
如果您愿意,您可以自定义格式。
关于fortran - 如何使用 autoconf 以可移植的方式查找 gfortran 版本号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42176006/