使用しているコンパイラの呼び出しによって定義されたすべてのマクロを確認したいと思います。これを行う方法はありますか?マニュアルで使用できると書いてありますcpp -dM
が、うまくいきません。おそらく私は何か間違ったことをしていますか?
私が走るとき:
cpp -dM
プリプロセッサからの出力がまったくありません。gccのオプションとして追加しよう-dM
としても、違いはわかりません。
使用しているコンパイラの呼び出しによって定義されたすべてのマクロを確認したいと思います。これを行う方法はありますか?マニュアルで使用できると書いてありますcpp -dM
が、うまくいきません。おそらく私は何か間違ったことをしていますか?
私が走るとき:
cpp -dM
プリプロセッサからの出力がまったくありません。gccのオプションとして追加しよう-dM
としても、違いはわかりません。
次を使用できます。
gcc -dM -E - < /dev/null
このコマンドに加えて、コンパイラマクロも取得できることに注意してください。
touch bla.c && gcc -dM -E bla.c
たとえば、私のコンピュータでは:
$ touch bla.c && gcc -dM -E bla.c | wc -l
486
$ gcc -dM -E - < /dev/null | wc -l
124
$
デフォルトでcpp -dM
は、入力ファイルを標準入力から読み取り、標準出力に書き込みます。入力を前処理しようとはしていないので、次を使用して空の入力を渡すことができます/dev/null
。
# Option 1
cpp -dM < /dev/null
# Optio n2
cpp -dM /dev/null
NUL
Windowsでは、の代わりに疑似ファイルを使用できます/dev/null
。