生成编译器定义的预处理器宏列表

Chr*_*ris 10 c preprocessor fortran icc intel-fortran

使用gcc和gfortran我可以生成编译器定义的预处理器宏列表(编辑以反映ouah的答案)

gcc -E -dM - < /dev/null
Run Code Online (Sandbox Code Playgroud)

gfortran -cpp -E -dM /dev/null
Run Code Online (Sandbox Code Playgroud)

分别(至少在Linux上).

我如何对英特尔编译器icc和ifort做同样的事情?我知道对于ifort这些宏是在这里定义的,但我希望能够自己生成这个列表,因为使用的确切宏及其值将取决于所使用的编译器选项.我也知道这个预先设计的项目.

oua*_*uah 11

与英特尔编译器一起使用:

icc -E -dM - < /dev/null
Run Code Online (Sandbox Code Playgroud)

请注意,如果要使用预处理器选项gcc,-E则还需要该-dM选项.


Chr*_*ris 4

通过英特尔 Fortran 编译器 ifort,可以使用以下内容:

ifort -E -fpp /dev/null -dryrun 2>&1 | grep -e -D | cut -c 5-
Run Code Online (Sandbox Code Playgroud)

看来 ifort 没有-dM像 icc、gfortran 和 gcc 那样的等效标志。