【问题标题】:How to disable warning from VS-Code GCC Compiler? (not use #pragma)如何禁用来自 VS-Code GCC 编译器的警告? (不使用#pragma)
【发布时间】:2021-03-29 15:58:22
【问题描述】:

我正在使用 C/C++ 智能感知 [gcc-arm] 开发 VS-Code。当我编译时,VS 代码向我显示了数百个这样的警告:

Conversion from 'int' to u16_t{aka 'short unsigned int'} may change value [-Wconversion]

我不希望 VSCode 向我显示这些警告。 但我无权编辑源代码。那么,有什么方法可以通过在 c_cpp_properties.json 文件中添加一些参数来禁用这些警告?

【问题讨论】:

    标签: c++ gcc visual-studio-code intellisense


    【解决方案1】:

    参考my own reference document here,如果您有权访问构建标志,则可以传入-Wno-conversion 以在编译时禁用此警告。

    来自我的文档:

    其他 C 和 C++ 构建说明(例如:w/gccclang 编译器):

    1. 使用-Wwarning-name 打开构建警告“warning-name”,使用-Wno-warning-name 关闭构建警告“warning-name”。 -W 打开警告,-Wno- 关闭警告。以下是 gcc 对此的看法(来源:https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html; 强调添加):

      您可以使用以-W 开头的选项来请求许多特定的警告,例如-Wimplicit 以请求对隐式声明的警告。这些特定警告选项中的每一个都有一个否定形式,以-Wno- 开头以关闭警告;例如,-Wno-implicit。本手册仅列出了两种形式中的一种,以默认形式为准。

    关于 Visual Studio Code,我不使用该 IDE,但 c_cpp_properties.json 文件似乎无法设置构建标志:https://code.visualstudio.com/docs/cpp/c-cpp-properties-schema-reference

    tasks.json 文件却是:https://code.visualstudio.com/docs/cpp/config-linux#_build-helloworldcpp

    这是他们的例子:

    {
      "version": "2.0.0",
      "tasks": [
        {
          "type": "shell",
          "label": "g++ build active file",
          "command": "/usr/bin/g++",
          "args": ["-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}"],
          "options": {
            "cwd": "/usr/bin"
          },
          "problemMatcher": ["$gcc"],
          "group": {
            "kind": "build",
            "isDefault": true
          }
        }
      ]
    }
    

    因此,您似乎可以将 -Wno-conversion 添加到 JSON 文件中的 args 列表中,如下所示:

    "args": [
        "-Wno-conversion",
        "-g", 
        "${file}", 
        "-o", "${fileDirname}/${fileBasenameNoExtension}"
    ],
    

    另见:

    1. How to include compiler flags in the Visual Studio Code debugger?

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-20
    • 2015-11-10
    • 1970-01-01
    • 1970-01-01
    • 2016-01-05
    • 1970-01-01
    • 2018-08-31
    相关资源
    最近更新 更多