6

私は CMake 用の cotire( https://github.com/sakra/cotire ) プラグインを使用しています。これは、コンパイルの高速化に関連するいくつかの優れた機能 (プリコンパイル済みヘッダーなど) を処理します。

問題は、警告が無効になっているいくつかのヘッダー (Boost 関連または Protobuf) をシステムのものとして含めることです。それらがプリコンパイルされた後、多くの警告が表示されます。

プリコンパイル済みヘッダーの警告を無効にすることはできますか?

4

1 に答える 1

1

これを行う組み込みの方法はないと思います。プリコンパイル済みヘッダーをコンパイルするときに「-w」フラグを追加するために、cotire 関数 cotire_add_pch_compilation_flags (cotire.cmake バージョン 1.5.1 の 1244 行目) を変更しました。GNU|CLang セクションを次のように変更しました

elseif (_compilerID MATCHES "GNU|Clang")
        # GCC / Clang options used
        # -x specify the source language
        # -c compile but do not link
        # -o place output in file
        set (_xLanguage_C "c-header")
        set (_xLanguage_CXX "c++-header")
        if (_flags)
            # append to list
            list (APPEND _flags "-x" "${_xLanguage_${_language}}" "-w" "-c" "${_prefixFile}" -o "${_pchFile}")
        else()
            # return as a flag string
            set (_flags "-x ${_xLanguage_${_language}} -w -c \"${_prefixFile}\" -o \"${_pchFile}\"")
        endif()

これにより、すべての警告が抑制されます。-Werror を含む多くの警告がオンになっているため、これは本質的な変更でした。

于 2013-12-11T13:12:02.213 に答える