gcc - 使用 -isystem 包含 CMake 项目依赖项包含目录

标签 gcc cmake googletest gcc-warning

我正在处理作为依赖项的 Google 测试 (gtest) 链接的项目。通过 CMake 的接口(interface)依赖项,谷歌测试 header 包含在项目中,使用谷歌测试项目中包含的 CMakeLists。
target_link_libraries (our_project gtest gmock)
我们在项目中使用的一些警告标志在谷歌测试中打印了大量警告——例如,GCC 的 -Wsuggest-override .理想情况下,这些警告不会被打印出来,因为它们来自一个库,我认为将库头包含在 -isystem 中。是正确的方法来做到这一点。但是,我不确定如何配置 CMake 以使用 -isystem对于指定的库。

有没有一种方法可以在不修改 gtest 的情况下将库依赖项指定为系统库,并忽略它的警告?

最佳答案

target_include_directories()提供 SYSTEM选项可以满足您的需求。或者,如果目标是导入的库目标,则填充 INTERFACE_SYSTEM_INCLUDE_DIRECTORIES属性而不是 INTERFACE_INCLUDE_DIRECTORIES属性(property)。

关于gcc - 使用 -isystem 包含 CMake 项目依赖项包含目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44273055/

相关文章:

gcc - 在 eclipse cdt 上构建项目时遇到问题?找不到 G++!

c - 了解空 main() 到程序集的翻译

gcc - C++ 查找并删除对很少使用的库的引用

c++ - 为什么 CMake 似乎不使用 add_compile_options 命令应用 -pthread ?

c++ - 在不同的时间传递不同的参数

c++ - 如何在重用 std::stringstream 变量时避免使用 std::stringstream.str() 和 std::stringstream.clear() ?

c++ - AppVeyor 上带有 g-tests 的 Visual Studio 解决方案

c++ - Valgrind 报告不匹配的 free()/delete/delete []

cmake - 查找BLAS给出通往lib的路径

visual-c++ - OpenCV-2.1.0 和 CMake2.8.2