【问题标题】:Enable Visual Studio's C++ Core Check analysis only on project files?仅对项目文件启用 Visual Studio 的 C++ Core Check 分析?
【发布时间】:2026-02-24 03:35:01
【问题描述】:

我是C++ Core Guidelines 的忠实粉丝,我喜欢在我从事的所有项目中关注他们,因此我在Visual Studio 2017 的项目模板中启用了以下选项:

这个工具很棒,可以帮助我编写更好的代码,但我根本不知道如何让它只分析我的文件。每当我的项目有诸如 BoostOpenCV 之类的依赖项时,我都会被贴满警告:

这些依赖项是通过vcpkg 添加的,但是,在使用C/C++ > General > Additional Include Directories 手动添加它们时会发生同样的事情。

有没有办法让这些警告只适用于项目文件,而不是所有包含的文件?

【问题讨论】:

标签: c++ visual-studio


【解决方案1】:

正如 cmets 中所述,就在文件末尾附近的 .vcxproj 中的以下部分之后:

<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
  <ImportGroup Label="ExtensionTargets">
</ImportGroup>

可以通过在上面提到的部分之后添加以下内容来解决问题:

<PropertyGroup Condition="'$(Language)'=='C++'">
  <CAExcludePath>$(QTDIR)\include;.\GeneratedFiles;$(CAExcludePath)</CAExcludePath>
</PropertyGroup>

此外,如果您使用的是vcpkg,我的情况就是这种情况,您需要将以下元素添加到CAExcludePath

$(VcpkgRoot)include

这将确保不会分析来自任何包的所有标头。

【讨论】:

  • 不知道为什么你有QTDIR。这似乎来自*.com/a/44640171/9478968,但该问题被标记为qt。这个问题不是。