GCCダンププリプロセッサの定義 質問する

GCCダンププリプロセッサの定義 質問する

gcc/g++ がコマンドラインからデフォルトのプリプロセッサ定義をダンプする方法はありますか? つまり__GNUC__、、、__STDC__などのことです。

ベストアンサー1

はい、使います-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 の同義語として解釈されます。

おすすめ記事