仅对项目文件启用Visual Studio的C++核心检查分析?

Mic*_*ith 15 c++ visual-studio

我是C++核心指南的忠实粉丝,我喜欢在我工作的所有项目中都遵循它们,因此我在项目模板中启用了以下选项Visual Studio 2017:

C++核心检查项目选项

这个工具很棒,可以帮助我编写更好的代码,但我根本无法弄清楚如何让它只分析我的文件.每当我的项目有一个依赖项,如BoostOpenCV时,我都会被贴上一层警告:

C++核心检查依赖项的警告

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

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

Mic*_*ith 9

正如评论中所提到的,紧接在.vcxproj文件末尾的以下部分之后:

<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
  <ImportGroup Label="ExtensionTargets">
</ImportGroup>
Run Code Online (Sandbox Code Playgroud)

可以通过在上述部分之后添加以下内容来解决该问题:

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

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

$(VcpkgRoot)include
Run Code Online (Sandbox Code Playgroud)

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