2020年8月30日日曜日

gcc の std オプションのデフォルト値を調べる

調べてみました。

gcc

$ echo | gcc -dM -E - | grep -F __STDC_V
#define __STDC_VERSION__ 201112L
  • -E : コンパイル・リンクを行わない(プリプロセッサ処理だけ行う)
  • -dM : 有効なマクロ定義を出力

g++

$ echo | g++ -dM -E -x c++ - | grep -F __cplusplus
#define __cplusplus 201402L
  • -x : 言語設定
    • 標準入力だと .c or .cpp で判定できないので、明示的に .cpp であることを知らせる

ちなみに、サポートしている std オプションの一覧は以下で取得できる。

gcc -v --help 2>/dev/null | grep -E "^\s+\-std=.*$"
g++ -v --help 2>/dev/null | grep -E "^\s+\-std=.*$"

参考資料

0 件のコメント:

コメントを投稿