Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gcc CMake(cotire)预编译标题和禁用警告_Gcc_Cmake_Warnings_Suppress Warnings_Precompiled Headers - Fatal编程技术网

Gcc CMake(cotire)预编译标题和禁用警告

Gcc CMake(cotire)预编译标题和禁用警告,gcc,cmake,warnings,suppress-warnings,precompiled-headers,Gcc,Cmake,Warnings,Suppress Warnings,Precompiled Headers,我正在使用CMake的cotire()插件,它可以处理与编译加速相关的一些好事情(例如预编译头) 问题在于,我将几个标题(Boost相关或Protobuf)作为系统标题,其中警告被禁用。在它们被预编译之后,我收到了很多警告 我可以禁用预编译头中的警告吗?我认为没有内置的方法可以做到这一点,我们修改了cotire函数cotire_add_pch_compilation_flags(第1244行cotire.cmake version 1.5.1),以便在编译预编译头时添加“-w”标志。我们将GNU

我正在使用CMake的cotire()插件,它可以处理与编译加速相关的一些好事情(例如预编译头)

问题在于,我将几个标题(Boost相关或Protobuf)作为系统标题,其中警告被禁用。在它们被预编译之后,我收到了很多警告


我可以禁用预编译头中的警告吗?

我认为没有内置的方法可以做到这一点,我们修改了cotire函数cotire_add_pch_compilation_flags(第1244行cotire.cmake version 1.5.1),以便在编译预编译头时添加“-w”标志。我们将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,所以这是一个重要的改变

禁用预编译头中的警告。CMake 3.16引入了对预编译头的本机支持。查看目标\u预编译\u头。你也许能摆脱科泰尔。