我有一个使用tinyxml2
库的项目。我有很长的编译器选项列表,-Werror=zero-as-null-pointer-constant
列在其中。因此,无论我在哪里添加tinyxml2.h
我都有错误:0 used as null pointer
,但我的代码没有这样的问题。有没有办法禁用包含的某些编译器选项,因为我无法控制它们?
P.S。如果无法通过gcc/clang
选项进行,也许可以通过cmake进行?或者我想知道两种方式是否存在。
答案 0 :(得分:1)
您可以将tinyxml2
的include目录标记为系统包含目录,该目录将禁止来自那里的警告。
使用GCC / Clang,您可以使用-isystem
而不是-I
执行此操作,或者在CMake中添加包含目录时使用关键字SYSTEM
。
例如
include_directories(SYSTEM ${SOME_INCLUDE_DIR})
或者更好,
target_include_directories(myExe SYSTEM ${SOME_INCLUDE_DIR})
答案 1 :(得分:0)