1. ホーム
  2. gcc

[解決済み】GCCのプリプロセッサー定義のダンプ

2022-04-01 16:51:20

質問

gcc/g++がコマンドラインからプリプロセッサの定義をダンプする方法はありますか? つまり、次のようなものです。 __GNUC__ , __STDC__ といった具合です。

どのように解決するのですか?

はい、使用します。 -E -dM オプションの代わりに-cを使用します。 例(標準出力に出力する)。

 echo | gcc -dM -E -
 echo | clang -dM -E -

C++の場合

 echo | g++ -dM -E -x c++ -
 echo | clang++ -dM -E -x c++ -

から gccマニュアル :

通常の出力の代わりに のすべての `#define' ディレクティブのリストです。 の間に定義されたマクロは プリプロセッサーを実行します。 定義済みマクロを含む。これは は、何が のバージョンで定義されている プリプロセッサーを使用します。がないと仮定すると ファイル foo.h の場合、コマンド

touch foo.h; cpp -dM foo.h

は、すべての定義済みマクロを表示します。

Eオプションを付けずに-dMを使用した場合。 -dMは-fdump-rtl-machと同義語として解釈されます。