【问题标题】:cmake supress warnings on external librarycmake 抑制外部库上的警告
【发布时间】:2017-08-01 09:30:50
【问题描述】:

我在我的项目中使用 GLAD,并使用 cmake 构建所有内容。

由于这是一个外部库而不是我的代码,我想在构建时完全禁止它的警告,因为我得到了很多这样的警告:

warning: ISO C forbids conversion of object pointer to function pointer type [-Wpedantic]
 glad_glCullFace = ( PFNGLCULLFACEPROC ) load ( "glCullFace" );
                   ^

我该怎么做? 我可以将它包含在我的源代码中,或者使用 GLAD 的源代码做一个 add_library,不管哪种方式。

谢谢

【问题讨论】:

  • 如果您将库构建为单独的库,请调整编译器标志(变量CMAKE_C_FLAGS)。如果您使用自己的库构建库的源,请调整属性COMPILE_FLAGS 以获取库的源。这两种方法都很容易用谷歌搜索。
  • How to suppress GCC warnings from library headers? 的可能重复项,尤其是答案 stackoverflow.com/a/26297802/2799037,它解释了将 SYSTEM 添加到 include_libraries
  • @usr1234567:警告实际上在source file中,而不是在标题中。
  • @Tsyvarev:我明白了,谢谢你的提示。可能这不是 CMake 问题。一旦回答了 C 的问题,它就会按照您的评论中的说明轻松应用于 CMake。
  • @usr1234567 。不是重复的。我知道 include_directory 的 SYSTEM 选项(不是 include_libraries )。这不是关于使用这些标头构建主项目,而是关于构建该库本身。

标签: cmake warnings suppress-warnings


【解决方案1】:

使用 SYSTEM 关键字来避免来自系统库的警告,如下所示:

target_include_directories(target SYSTEM GLAD)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-08
    • 2015-03-17
    • 1970-01-01
    • 1970-01-01
    • 2011-03-31
    • 2019-10-22
    • 2014-12-19
    • 2021-12-27
    相关资源
    最近更新 更多