在使用一些第三方库或源码的时候,经常会遇到编译时产生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下的用法是这样的:

.....
namespace cimg_library {template < typename T >class CImgWrapper: public CImg < T > {
public:using _Base = CImg < T >;// 关闭 using  _Base::_Base; 这行代码产生的警告
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Winherited-variadic-ctor"using _Base::_Base; // 继承基类构造函数
#pragma GCC diagnostic pop... ...}
}

msvc/gcc:中用#pragma指令关闭特定警告(warning)相关推荐

  1. pragma指令简介

    在编写程序的时候,我们经常要用到#pragma指令来设定编译器的状态或者是指示编译器完成一些特定的动作. 下面介绍了一下该指令的一些常用参数,希望对大家有所帮助! 一. message 参数. mes ...

  2. c语言 pragma指令,C语言#pragma指令用法

    引导语:在所有的预处理指令中,#Pragma指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作.以下是百分网小编分享给大家的C语言#pragma指令用法,欢迎阅读! # ...

  3. 解析#pragma指令

    #pragma指令对每个编译器给出了一个方法,在保持与 C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征.依据定义,编译指示是机器 或操作系统专有的,且对于每个编译器都是不同的. 其格式一 ...

  4. VC中的#pragma指令的用法

    在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作.#pragma指令对每个编译器给出了一个方法,在保持与C和 C++语言完全兼容 ...

  5. #Pragma 指令

    ARM 信息中心http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0348bc/BCFJBABB.html #Pragma  ...

  6. #pragma指令与#ifndef指令

    #pragma指令与#ifndef指令 在C/C++中,在使用预编译指令#include的时候,为了防止重复引用造成二义性,通常有两种方式-- 第一种是#ifndef指令防止代码块重复引用,比如说 # ...

  7. 【转】关闭特定虚拟机上声音嘟嘟声

    转自:http://xu020408.blog.163.com/blog/static/26548920100311712238/ 关闭虚拟机发出的"嘟嘟"声 方法 1: 关闭特定 ...

  8. GCC中SIMD指令的应用方法

    X86架构上的多媒体应用开发,如果能够使用SIMD指令进行优化, 性能将大大提高.目前,IA-32的SIMD指令包括MMX,SSE,SSE2等几级. 在GCC的开发环境中,有几种使用SIMD指令的方式 ...

  9. 【VS消除警告】VS消除特定警告/安全函数警告C4996 strncpy unsafe……

    1.安全函数警告消除: 编译中出现 This function or variable may be unsafe. 消除方法: 1.在文件开头添加:#define _CRT_SECURE_NO_WA ...

最新文章

  1. 使最新版Code::Blocks支持C++11标准
  2. Windows事件等待学习笔记(一)—— 临界区自旋锁
  3. static的应用以及静态与非静态的区别
  4. 普通人怎么样才能存到钱?
  5. 工业革命 书_工业革命以来最重大的变化
  6. java怎么销毁session_【Java】问题:Session的销毁方式到底有哪些?
  7. 考研数学常见的函数图像
  8. corpus iweb_智能网络语料库iWeb及其在英语教学中的应用
  9. vue在开发环境怎么兼容ie_vue 配置兼容ie浏览器
  10. 直面程序人生,始于当下,奔赴未来!
  11. ios 获取沙盒文件名_iOS 获取沙盒文件路径及 写入/删除 沙盒文件
  12. 玩转居庸关长城(攻略)
  13. 获取第二天凌晨12点时间
  14. 任务调度:全网最全 xxl-job任务触发流程
  15. 禅道项目管理,带你避开项目管理中的那些坑
  16. 招聘面试技巧(转载)
  17. 私域论坛圈子社区小程序开发
  18. 熊猫烧香作者李俊抓捕实录-读后感
  19. 简单示例mock的使用 (Junit结合Jmock)
  20. linux下python识别excel,Python操作Excel之数据提取

热门文章

  1. centos7 ambari2.6.1.5+hdp2.6.4.0 大数据集群安装部署
  2. Sublime-text
  3. 使用golang求出A-Z的所有子集
  4. “产教融合新范式,校企聚力新实践”——2018杭州云栖大会大学合作专场论坛成功举办...
  5. springMVC通过ajax传递参数list对象或传递数组对象到后台
  6. 26.C++- 泛型编程之类模板(详解)
  7. UVA 1415 - Gauss Prime(数论,高斯素数拓展)
  8. windows charles response 乱码解决办法
  9. 详细解读Volley(二)—— ImageRequest Request简介
  10. [WebApp]定宽网页设计下,固定宽度布局开发WebApp并实现多终端下WebApp布局自适应...