4

私はautomakeを初めて使用しますが、ドキュメントを調べて、好きなようにすべてを構築しています。ただし、現在CFLAGS ="-Wall-Werror"をオンにしています。これはgccには最適ですが、誰かがgcc以外のコンパイラを使用して私のコードをビルドしようとしていると思います。GCCが使用されているかどうかを検出し、GCCにそれらのフラグのみを設定する正しい方法は何ですか?

編集

解決策は次のようになります。

  1. http://www.gnu.org/software/autoconf-archive/ax_check_compile_flag.htmlをダウンロードし、プロジェクトの./m4/ディレクトリにマクロを配置します。
  2. configure.acに次の行を追加します。

    AX_CHECK_COMPILE_FLAG([-Wall], [CFLAGS="$CFLAGS -Wall"], [], [])
    AX_CHECK_COMPILE_FLAG([-Werror], [CFLAGS="$CFLAGS -Werror"], [], [])
    

編集2

このマクロは、複数のコンパイラに対して同じことを行うため、-Wallよりも便利な場合があります。http ://www.gnu.org/software/autoconf-archive/ax_cflags_warn_all.html

4

1 に答える 1

4

などのAutoconfマクロを使用して、各フラグがサポートされているかどうかを確認できますAX_CHECK_COMPILE_FLAG

于 2012-12-19T14:11:35.143 に答える