使用此选项与Intel编译器一起:
icc -E -dM - < /dev/null
请注意,使用 gcc
编译器时,如果要使用 -dM
预处理选项,则还需要使用 -E
选项。
ifort -E -fpp /dev/null -dryrun 2>&1 | grep -e -D | cut -c 5-
看起来ifort没有与icc、gfortran和gcc相同的-dM
标志等效。
gfortran
,请注意,gfortran -E -dM - < /dev/null
的结果与调用 gcc
相同,这可能没有什么帮助。你可能需要类似这样的命令 (source):gfortran -cpp -E -dM empty.f
,这将给出一个更小的列表,列出 gfortran
实际预定义的内容。你会注意到,结果很可能不包括任何有助于确定操作系统的内容。一般来说,对于Fortran,你需要自己定义这些内容。有关详细信息,请参见 here。你也可以尝试类似于 this 的解决方案,但我对该解决方案的实际可行性持怀疑态度。另外,那个链接暗示了 gfortran
曾经定义过比现在多的内容。
gcc
时使用-E
选项的提示 - 我已经编辑了我的问题以包括这个标志。有没有关于如何在ifort中做同样事情的想法? - Chris