- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一些为构建而设置的项目的解决方案。我想为解决方案运行指南检查器。使用这个 MSDN article我不想修改项目文件,所以我创建了 batfile:
call "%VS140COMNTOOLS%\VsMSBuildCmd.bat"
msbuild Olymp.sln /p:EnableCppCoreCheck=true /p:RunCodeAnalysis=true /p:CodeAnalysisRuleSet="C:\Program Files (x86)\Microsoft Visual Studio\Preview\Community\Team Tools\Static Analysis Tools\Rule Sets\CppCoreCheckRules.ruleset" /t:Rebuild
但我正在使用 bat 文件覆盖它当我运行这段代码时,我没有关于警告的输出(如在 MSDN 上),它们存在:
E:\Code\Olymp\Olymp>msbuild Olymp.sln /p:EnableCppCoreCheck=true /p:RunCodeAnalysis=true /p:CodeAnalysisRuleSet="C:\Program Files (x86)\Microsoft Visual Studio\Preview\Community\Team Tools\Static Analysis Tools\Rule Sets\CppCoreCheckRules.ruleset" /t:Rebuild
Microsoft (R) Build Engine version 14.0.25420.1
Copyright (C) Microsoft Corporation. All rights reserved.
Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch.
Build started 10.04.2018 18:42:59.
Project "E:\Code\Olymp\Olymp\Olymp.sln" on node 1 (Rebuild target(s)).
ValidateSolutionConfiguration:
Building solution configuration "Debug|x64".
Project "E:\Code\Olymp\Olymp\Olymp.sln" (1) is building "E:\Code\Olymp\Olymp\Olymp\Olymp.vcxproj" (2) on node 1 (Rebuil
d target(s)).
_PrepareForClean:
Deleting file "x64\Debug\Olymp.tlog\Olymp.lastbuildstate".
InitializeBuildStatus:
Creating "x64\Debug\Olymp.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.
ClCompile:
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\x86_amd64\CL.exe /c /ZI /nologo /W3 /WX- /sdl /Od /D CODE_
ANALYSIS /D _MBCS /Gm /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /Fo"x64\Debug\\" /Fd"x64\D
ebug\vc140.pdb" /Gd /TP /analyze /errorReport:queue /analyze:quiet main.cpp
main.cpp
Link:
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\x86_amd64\link.exe /ERRORREPORT:QUEUE /OUT:"E:\Code\Olymp\
Olymp\x64\Debug\Olymp.exe" /INCREMENTAL /NOLOGO kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.
lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiA
ccess='false'" /manifest:embed /DEBUG:FASTLINK /PDB:"E:\Code\Olymp\Olymp\x64\Debug\Olymp.pdb" /TLBID:1 /DYNAMICBASE /
NXCOMPAT /IMPLIB:"E:\Code\Olymp\Olymp\x64\Debug\Olymp.lib" /MACHINE:X64 x64\Debug\main.obj
Olymp.vcxproj -> E:\Code\Olymp\Olymp\x64\Debug\Olymp.exe
Olymp.vcxproj -> E:\Code\Olymp\Olymp\x64\Debug\Olymp.pdb (Partial PDB)
FinalizeBuildStatus:
Deleting file "x64\Debug\Olymp.tlog\unsuccessfulbuild".
Touching "x64\Debug\Olymp.tlog\Olymp.lastbuildstate".
Done Building Project "E:\Code\Olymp\Olymp\Olymp\Olymp.vcxproj" (Rebuild target(s)).
Done Building Project "E:\Code\Olymp\Olymp\Olymp.sln" (Rebuild target(s)).
Build succeeded.
0 Warning(s)
0 Error(s)
Time Elapsed 00:00:00.68
是的,我可以从项目中收集所有 cpps 并尝试将分析器作为 cl.exe 参数运行,但我想使用 msbuild。我的设置有什么问题?
最佳答案
Cpp Core Guidelines Checker using console and MSBuild
我发现您已经通过脚本 call "%VS140COMNTOOLS%\VsMSBuildCmd.bat"
为 Visual Studio 2015 命令行设置了环境变量。 %VS140COMNTOOLS%
用于为 Visual Studio 2015 命令行而不是 Visual Studio 2017 设置环境变量。然后你可以成功构建你的项目,没有任何错误,所以我怀疑这个项目可能是由 Visual 创建的工作室 2015。
如果是,您将得到没有关于警告的输出的结果。这是因为核心准则检查器默认安装在 Visual Studio 2017 中而不是 Visual Studio 2015 中,they are available as a NuGet package for Visual Studio 2015 .
要为 Visual Studio 2017 命令行设置环境变量,您可以从以下位置调用 VsMSBuildCmd.bat
:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\Tools
由于您使用的是预览版 Visual Studio,因此它应该是:
C:\Program Files (x86)\Microsoft Visual Studio\Preview\Community\Common7\Tools
为了通过 MSBuild 验证这一点,我使用 Visual Studio 2017 创建了一个测试示例项目(不修改项目文件),然后创建了一个包含以下脚本的 bat 文件:
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\Tools\VsMSBuildCmd.bat"
MSBuild "C:\Users\Admin\Source\repos\ConsoleApplication1\ConsoleApplication1.sln" /p:EnableCppCoreCheck=true /p:RunCodeAnalysis=true /p:CodeAnalysisRuleSet="C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Team Tools\Static Analysis Tools\Rule Sets\CppCoreCheckRules.ruleset" /t:Rebuild
pause
执行bat文件后,我得到警告:
要验证这一点,您还可以使用 Visual Studio 2017 创建一个新项目,然后使用该 bat 文件构建它。
希望这对您有所帮助。
关于c++ - 使用控制台和 MSBuild 的 Cpp Core Guidelines Checker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49757945/
看完F# Component Design Guidelines ,我没有看到任何评论是否应该声明模块及其类型具有相同的名称。 通常我的项目没有任何循环依赖,所以我不需要创建一个新模块(例如 Infr
我有 .NET 背景,现在正在涉足 Java。 目前,我在设计一个针对错误输入的防御性 API 时遇到了很大的问题。假设我有以下代码(足够接近): public void setTokens(Node
需要有关 Java 接口(interface)命名模式的简短答案。 为什么大多数JAVA接口(interface)名称后缀都有“able”? 例如 java.io.Serializable java.
msvc的cpp核心准则代码分析器告诉我 Warning C26472 Don't use a static_cast for arithmetic conversions. Use brace in
我完全同意下面的导航 假设 Book 详细信息是在 BookDetailActivity 的不同实例中创建的。 book2 详情中压上前的栈是: BookDetailActivity(第 2 本书 -
我已经查看了应用评论的官方应用指南,但可以得到答案。我正在开发一个应用程序,它将获取用户的电话联系人并将它们存储在我的服务器上。然后,这些联系人将对某些其他应用程序用户可见。假设我提醒用户他们的联系人
我得到了这个设置: ... 现在,当 View 未满并且不需要滚动条时 - 一切都按预期工作 - 图像相对于屏幕尺寸为 35
我得到了这个设置: ... 现在,当 View 未满并且不需要滚动条时 - 一切都按预期工作 - 图像相对于屏幕尺寸为 35
如何以编程方式创建 ConstraintLayouts 和 Guidelines?我已经尝试使用以下代码创建一个简单的布局,该布局使用指南将 View 锚定到屏幕中间,但它在屏幕左侧呈现红色“v” V
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 7 年前。 Improve
这个问题在这里已经有了答案: How Non-Member Functions Improve Encapsulation (8 个答案) 关闭 5 年前。 C++ Core Guidelines
很难说出这里问的是什么。这个问题是模棱两可的、模糊的、不完整的、过于宽泛的或修辞的,无法以目前的形式得到合理的回答。 visit the help center 帮助澄清这个问题以便重新打开它。 11
我想尝试使用 Core Guidelines checker tool在 VS2015 下的 C++11/14 项目上。 在我的代码中,我使用了很多来自 Boost 的库,它们触发了很多警告。我不关心
App Store Review Guidelines 说:“以任何方式或形式下载代码的应用程序将被拒绝。” 我想制作一个使用挑战-响应进行身份验证的应用程序。该应用程序具有一套基本算法,例如 SHA
最近尝试实现 Constraint Layout 但我发现 Barrier 和 Guideline 工作方式相同。 两者都像分隔线一样工作.它们之间有什么区别吗? 最佳答案 何时使用障碍 假设您有两个
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 6年前关闭。 Improve this qu
我正在尝试找到一种简单的方法来为 Plottable.js 中的 GuideLineLayer 着色。 到目前为止我尝试了以下方法。 1) 尝试在 onAnchor() 内使用 attr()这会将 a
我正在尝试使用以下方法设置新代理: java -javaagent:agent.jar 当我运行时,我看到 java 使用消息。 list .MF: Manifest-Version: 1.0 Cre
有问题的应用程序将包含用于解锁功能的典型不可更新订阅模型,但也将有另一种机制来访问其他功能。 此应用程序将允许用户购买(假设为消耗品)在固定期限内为另一用户访问完整功能。当然,该应用程序必须在其自己的
我下载了一些数据并将其保存到 Library/PrivateDocuments 目录。我在这个 Library/PrivateDocuments 目录中下载的每个文件都设置了“不备份”属性。苹果仍然说
我是一名优秀的程序员,十分优秀!