コンパイル時に (gcc) コンパイラの構成を確認する良い方法はありますか (Makefile 内または C ソース ファイル内から)。使用されているコンパイラがコンパイルされているコードを十分にサポートしているかどうかを確認したいのですが、そうでない場合は、ユーザーにツールチェーンをアップグレードするように求める明確なメッセージを表示して、すぐに失敗するようにしたいと考えています。
ありがとう
ジョン
コンパイル時に (gcc) コンパイラの構成を確認する良い方法はありますか (Makefile 内または C ソース ファイル内から)。使用されているコンパイラがコンパイルされているコードを十分にサポートしているかどうかを確認したいのですが、そうでない場合は、ユーザーにツールチェーンをアップグレードするように求める明確なメッセージを表示して、すぐに失敗するようにしたいと考えています。
ありがとう
ジョン
検出された問題の解決策がツールチェーンのアップグレードである場合は、コンパイラによって事前定義されているマクロを確認__GNUC__
し__GNUC_MINOR__
てください。__GNUC_PATCHLEVEL__
私がお勧めする最もよく使用されるツールはautotoolsとCMakeです。
Autotools は、GNU プロジェクトの歴史的なツールであり、開発者が M4 スクリプト (autoconf) を介して機能検出を実装できるようにする一連のスクリプトです。一般的なテスト用に定義済みのマクロがあります。
CMake は最近のネイティブ C++ ツールチェーンであり、最も一般的な機能チェックのサポートも含まれており、開発者はその強力な言語を介して独自のテストを実装できます。
どちらも手書きの makefile を完全に置き換える完全なビルド ツールチェーンであることに注意してください。しかし、クロスプラットフォームのサポートと保守性に関して提供される利点は、makefile によって提供される制御レベルよりもはるかに価値があると私は信じています。