使用gcc和gfortran我可以生成编译器定义的预处理器宏列表(编辑以反映ouah的答案)
gcc -E -dM - < /dev/null
和
gfortran -cpp -E -dM /dev/null
分别(至少在Linux上)。
我如何对英特尔编译器icc和ifort做同样的事情?我知道对于ifort这些宏是定义here,但我希望能够自己生成这个列表,因为使用的确切宏及其值将取决于所使用的编译器选项。我也知道predef项目。
答案 0 :(得分:11)
与英特尔编译器一起使用:
icc -E -dM - < /dev/null
请注意,对于gcc
,如果要使用-E
预处理器选项,还需要-dM
选项。
答案 1 :(得分:3)
使用英特尔Fortran编译器ifort,可以使用以下命令:
ifort -E -fpp /dev/null -dryrun 2>&1 | grep -e -D | cut -c 5-
似乎比ifort没有像icc,gfortran和gcc这样的等效-dM
标志。
答案 2 :(得分:1)