-dumpversion を使用して、コンパイラが使用可能かどうかを判断しようとしていました。私のプロジェクトは、clang 以降の gcc でコンパイルできますが、古い gcc 4.2.1 ではコンパイルできません。
では、なぜ clang は古い gcc のふりをするのでしょうか?
追加の質問です。実行時にこの値を変更することは可能ですか?
または、clang と gcc の両方でコンパイラのバージョンを判断するための素晴らしい autoconf マクロを持っている人はいますか?
Clang はもともと、gcc 4.2.1 と互換性を持つように作成されました。今年初めにその数を更新することについていくつかの議論がありましたが、問題がありました.
autoconf チェックの場合、clang はその__has_feature 拡張機能を使用することを提案しています。Clang のドキュメントには、__has_featureでもチェックできる項目のリストがあります。