如何在 Visual C++ 中抑制外部标头中的警告

2024-03-29

我正在启动一个新的 BREW 项目,并且我想使用警告级别 4 (/W4) 进行编译,以保持应用程序代码的美观和干净。问题是 BREW 头文件本身不能用 /W4 干净地编译。

在 gcc 中,您可以使用 -I 和 -isystem 来区分应用程序头和系统头,然后默认情况下 gcc 不会在系统头中报告任何编译警告。 Visual C++ 中有等效的机制吗?


在您无法或不想更改但需要包含的标头周围使用此方法。

您可以有选择地暂时禁用所有警告,如下所示:

#pragma warning(push, 0)
// Some include(s) with unfixable warnings
#pragma warning(pop)

代替0您可以选择传入要禁用的警告编号,例如:

#pragma warning(push)
#pragma warning(disable : 4081)
#pragma warning(disable : 4706)
// Some code
#pragma warning(pop)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Visual C++ 中抑制外部标头中的警告 的相关文章

  • Clang C++ 抑制每个文件的 -Wno-deprecated-声明

    在 Xcode 中 在项目级别我有以下设置 Xcode 设置以抑制不推荐使用的函数警告 https i stack imgur com 4eNeY png 这会将 Wno deprecated declarations 添加到编译中 我可以
  • 有符号和无符号的位移操作

    我正在对 int 进行位移操作 但很惊讶它没有按预期输出 int i res i 0x80000000 res i gt gt 1 results in 0xc0000000 res unsigned int i gt gt 1 resul
  • 无法使用 Visual C++ 编译 allegro

    我刚刚下载了 allegro 库 我创建一个新的空项目 然后添加一个源文件 我添加这行代码 include
  • 程序崩溃并显示 0xC000000D 并且没有异常 - 如何调试它?

    我有一个使用第三方库的 Visual C 9 Win32 应用程序 当使用一组特定参数调用该库中的函数时 程序会崩溃并显示 异常代码 0xC000000D 我尝试附加 Visual Studio 调试器 没有抛出异常 C 也没有像访问冲突那
  • 在大型 C++ 遗留应用程序中查找“死代码”[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我目前正在开发一个大型且古老的 C 应用程序 在我之前已有许多开发人员 项目中有很多 死代码 类和函数
  • 如何以编程方式获取 vmmap 中显示的信息?

    任何看过 Mark Russovich 演讲 揭示内存管理之谜 的人都知道 vmmap 工具可以向您显示与进程限制 普通 32 位 Windows 上为 2GB 相关的内容 而其他工具似乎很少了解这些内容 我希望能够以编程方式监控我的rea
  • 自定义分配器与承诺和打包任务

    标准的分配器构造函数是promise packaged task应该仅将分配器用于状态对象本身 或者应该保证这一点all 内部 相关对象 futures promise 为共享状态分配内存 futures task members 分配存储
  • 我如何使其解密而不是加密?

    想知道如何从加密代码中获取此代码并使用相同的代码来创建解密 我知道这意味着我必须反转一些指令并重新排序 但我无法弄清楚哪些指令需要重新排序 哪些不需要 编辑 这是完整的函数 可以让事情变得更清晰一些 对堆栈溢出非常陌生 因此对于任何混淆表示
  • 是否可以让 valgrind 忽略某些库?

    或者最好是全部而不只是我的代码 我的程序使用 Gtk Loudmouth 和其他一些东西 而这两个 以及它们背后的一些 libgcrypto libssl 本身导致了如此多的错误 以至于我无法检测到我自己的错误 是否有可能让 valgrin
  • 在 C++ 中与 VARIANT 类型相互转换的简单方法

    有没有便于使用 高级类或库让您可以与VARIANT在 Visual C 中 更具体地说 我想在 POD 类型之间进行转换 例如double long 字符串 例如CString 和容器 例如std vector and VARIANTs 例
  • 为什么带有自定义删除器的 unique_ptr 不适用于 nullptr,而 shared_ptr 却可以?

    使用简单的代码unique ptr or shared ptr作为瞄准镜守卫 有关要清除的内容的所有信息都记录在deleter 所以我认为使用是安全的nullptr对于构造函数 显然 对于 Visual C 2017 14 1 它无法按预期
  • 编译器不应该对派生类中隐藏的基结构的成员变量发出警告吗?

    我不小心用基结构派生的类中的私有成员隐藏了 基 结构的一些成员变量 结构基 int a 派生类 公共基类 私人的 int a 在我的例子中 这是一个错误 导致了一个偷偷摸摸的错误 幸运的是在测试时发现了 因为我认为故意隐藏成员确实很少见 如
  • 如何在 javadoc 编译期间抑制警告(代码库范围内)?

    我被困在一个遗留的 Java 代码库中 当你编译它时 它有数千个警告 我很想真正修复所有这些警告的来源 但不幸的是 目前在我的公司这不是一个选择 负责人认为 制造可产生收入的新产品 等其他事情被认为是更优先的事情 想象一下 现在 如果不是因
  • 在 Visual Studio 中模拟 GCC 的 __builtin_unreachable?

    我见过this https stackoverflow com q 6031819 10147399关于模仿的问题 builtin unreachable在旧版本的 GCC 中 我的问题正是如此 但针对的是 Visual Studio 20
  • uninitialized_copy memcpy/memmove 优化

    我最近开始研究 MSVC 实现中的 STL 那里有一些不错的技巧 但是我不知道为什么使用以下标准 The std uninitialized copy被优化为一个简单的memcpy memmove如果满足某些条件 据我了解 输入范围可以是m
  • 获取:错误C2668:'sqrt':对重载函数的不明确调用[重复]

    这个问题在这里已经有答案了 尝试根据教科书中给出的示例构建下面的源代码 我使用的是 Visual Studio 2008 编译器似乎不知道如何处理 sieve 1 gt Rebuild All started Project fig21 4
  • 利用 SSE 和其他 CPU 扩展

    在我的代码库中有几个地方 对于大型数据集 相同的操作会重复很多次 在某些情况下 处理这些需要花费相当长的时间 我相信使用SSE来实现这些循环应该可以显着提高它们的性能 特别是在对同一组数据执行许多操作的情况下 因此一旦数据最初被读入缓存 就
  • 有没有办法将 fopen_s() 与 GCC 一起使用,或者至少创建一个 #define ?

    MSVC 编译器说fopen 已弃用 建议使用fopen s 有什么办法可以使用吗fopen s 并且仍然便携 任何想法 define 微软的 s函数是不可移植的 我通常使用等效的 C89 C99 函数并禁用弃用警告 define CRT
  • 指向成员函数的指针的大小疯狂变化

    有一个非常微妙的问题 得到一个用 MS VS 2013 c 编译器编译的类 对于 32 位平台 大小为 4 个字节 函数指针的大小为 4 个字节 但是 当这个类使用相同的编译器编译但包含到不同的项目中以生成库时 也针对 32 位平台 则该类
  • unsigned char* 缓冲区到 System::Drawing::Bitmap

    我正在尝试创建一个工具 资产转换器 使用以下命令将字体光栅化为 XNA 游戏的纹理页面自由类型2 http www freetype org freetype2 index html engine 下面 第一张图片是FreeType2的直接

随机推荐