13

使用しているコンパイラの呼び出しによって定義されたすべてのマクロを確認したいと思います。これを行う方法はありますか?マニュアルで使用できると書いてありますcpp -dM が、うまくいきません。おそらく私は何か間違ったことをしていますか?

私が走るとき:

cpp -dM

プリプロセッサからの出力がまったくありません。gccのオプションとして追加しよう-dMとしても、違いはわかりません。

4

2 に答える 2

17

次を使用できます。

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
$
于 2012-06-05T21:09:05.973 に答える
5

デフォルトでcpp -dMは、入力ファイルを標準入力から読み取り、標準出力に書き込みます。入力を前処理しようとはしていないので、次を使用して空の入力を渡すことができます/dev/null

# Option 1
cpp -dM < /dev/null
# Optio n2
cpp -dM /dev/null

NULWindowsでは、の代わりに疑似ファイルを使用できます/dev/null

于 2012-06-05T21:05:09.457 に答える