msvc/gcc:中用#pragma指令关闭特定警告(warning)
来源:互联网 发布:万网中文域名 编辑:程序博客网 时间:2024/06/05 11:06
在使用一些第三方库或源码的时候,经常会遇到编译时产生warnings情况,这些warning不是我们自己的代码产生的,当然也不好去修改,但每次编译都显示一大堆与自己代码无关的警告也着实看着不爽,更麻烦的是还有可能造成自己代码中产生的警告被淹没在多过的无关警告中,而被忽略掉的情况。
所以要想办法关闭这些第三方代码和库产生的警告。
关闭特定的warning可以在编译时通过命令行参数的方式指定,比如 gcc 是在命令行一般是用-Wno-xxxx这样的形式禁止特定的warning,这里xxxx代入特定的警告名。但这种方式相当将所有代码产生的这个warning显示都关闭了,不管是第三方库产生的还是自己的代码产生的,所以这种用法并不适合。
关闭特定的warning还可以在代码中通过添加#pragma
指令来实现,用#pragma
指令可以对指定的区域的代码关闭指定的warning。
msvc下的用法是这样的
#ifdef _MSC_VER// 关闭编译CImg.h时产生的警告#pragma warning( push ) #pragma warning( disable: 4267 4319 )#endif#include "CImg.h"#ifdef _MSC_VER#pragma warning( pop ) #endif
gcc下的用法是这样的:
#ifdef __GNUC__// 关闭 using _Base::_Base; 这行代码产生的警告#pragma GCC diagnostic push#pragma GCC diagnostic ignored "-Winherited-variadic-ctor"#endif.....namespace cimg_library {template<typename T>class CImgWrapper:public CImg<T> {public: using _Base =CImg<T>; using _Base::_Base; // 继承基类构造函数 ......}} /* namespace cimg_library */#ifdef __GNUC__#pragma GCC diagnostic pop#endif
参考资料:
https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
https://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Pragmas.html#Diagnostic-Pragmas
0 0
- msvc/gcc:中用#pragma指令关闭特定警告(warning)
- gcc 关闭warning警告
- #pragma warning指令
- #pragma warning指令
- #pragma warning 指令集
- PHP关闭warning警告
- msvc/gcc 忽略警告(qt)
- gcc warning #pragma comment 解决
- VC中#pragma warning指令
- VC中#pragma warning指令
- VC中#pragma warning指令
- VC中#pragma warning指令
- VC中#pragma warning指令
- gcc编译过程 常用指令:#warning/#error/#pragma 环境变量 头文件
- VC 关闭Warning警告提示
- 关闭VS警告 warning C4996
- (ZT)VC中#pragma warning指令
- matlab中关闭特定的warning
- js中使用正则表达式
- Caused by: java.lang.UnsupportedClassVersionError
- APK签名之keytool生成keystore和jarsigner签名apk
- Android启动过程研究(二:AIL描述的init.rc)
- Linux SD卡驱动开发(二) —— SD 卡驱动分析HOST篇
- msvc/gcc:中用#pragma指令关闭特定警告(warning)
- c++对象模型研究7:站在对象模型的顶端
- Android混淆配置
- 每周重拾两个Linux命令:cd ------>第一周
- Java容器
- FTP客户端代码解析
- Linux SD卡驱动开发(三) —— SD 卡驱动分析CORE篇
- Swift - 搜索条(UISearchBar)的用法
- java集合类深入分析之Queue篇