調べてみました。
gcc
-E
: コンパイル・リンクを行わない(プリプロセッサ処理だけ行う)-dM
: 有効なマクロ定義を出力
g++
-x
: 言語設定- 標準入力だと
.c
or.cpp
で判定できないので、明示的に.cpp
であることを知らせる
- 標準入力だと
ちなみに、サポートしている std
オプションの一覧は以下で取得できる。
参考資料
- Man page of GCC
- Standards (Using the GNU Compiler Collection (GCC))
- Pre-defined Compiler Macros / Wiki / Standards
- 処理系 - cpprefjp C++日本語リファレンス
- g++ (GCC) が対応している言語規格(std値) を確認する方法 - Qiita
初期状態を見るだけなら、
— Katsuhiro Suzuki (@ksattkb) August 29, 2020
echo | gcc -dM -E - | grep STDC_V
にすると C ソースコードファイル(a.c)も要りません。
なんかもっとスマートな方法がありそう。。。
0 件のコメント:
コメントを投稿