如何防止“#warning”消息被视为错误
How to prevent `#warning` messages from being treated as an error?
我试图在现有的代码库中编译引入-Werror
标志。我遇到的一个问题是,在某些地方使用#warning
来显示信息消息。这些不应被视为错误。
一个解决方案是使用#pragma message
代替,但这似乎不支持旧版本的gcc。(我们的构建服务器使用gcc 4.1.2)。
谁能帮我解决这个问题?
在gcc-4.6及以上版本中,可以使用-Wno-error=cpp
。至少在Lion和以后发布的clang中,您可以使用-Wno-error=#warnings
。但是由于您的构建服务器使用的是旧的gcc,因此您可能不太幸运。
一般情况下,通过-fdiagnostics-show-option来显示如下警告:
test.cc:1:2: warning: #warning hello [-Wcpp]
告诉您控制警告的警告标志。在gcc>=4.6和clang中,这是默认值,所以知道传递它可能不再太有用了。
本地禁用-Werror
对#warning
的影响如下:
#pragma GCC diagnostic push
#pragma GCC diagnostic warning "-Wcpp"
#warning Informative message: everything is nice and good!!!
#pragma GCC diagnostic pop
这种方法的好处是,您仍然可以在代码的其他地方诱导#warning
错误。
相关文章:
- C++错误消息*成员参考.**初学者*
- 如何通过参数抛出错误消息
- glad 导致 glfwSwapBuffers 返回错误消息
- FindPackageHandleStandardArgs.cmake:137 的 CMake 错误(消息):找不到 Boost (缺少:正则表达式)(找到合适的版本"1.72.0",
- 如何接受 [ENTER] 键作为无效输入并发送错误消息
- 重新定义预定义的 errno 错误消息 (E2BIG)
- SDL 映像:无法打开映像,仅显示错误消息
- 错误消息:使用"string* +="后"no match for 'operator+='"
- 错误消息"expected expression"....有人知道它为什么这么说吗?
- 在 Eclipse: "error: no match for 'operator='" 中获取错误消息
- GCC 警告和 gcc 错误消息之间的区别
- 为 c++ cin 上的输入数无效生成错误消息
- 来自带有mbedtls TLS的Mongoose Web服务器的错误消息
- 如何使用realsense摄像头调试ROS错误消息
- C++ 概念 - 需要括号中的概念会导致 2 条冲突的错误消息
- 编译器收到错误消息(textc.exe已停止)
- 结构数组的构造函数错误,错误消息:没有构造函数实例与参数列表匹配
- 使用 c++/WinRT Direct3D UWP Game DR 模板 Direct X11 的错误消息
- max_element() 给出非常奇怪的错误消息
- 不断收到错误消息,并非所有控制路径都返回值