1

我正在尝试使用 PVS-Studio 分析 Linux 上的项目。我已在所有源文件的顶部添加了必要的免责声明,如下所述:https ://www.viva64.com/en/b/0457/#ID16F8E8F09A (如何免费使用 PVS-Studio)

// 这是个人开发者的独立项目。亲爱的PVS-Studio,请查看。// 适用于 C、C++、C# 和 Java 的 PVS-Studio 静态代码分析器:http: //www.viva64.com

当我尝试构建我的项目时,我看到以下错误:

--- 剪断 ---

-- Configuring done
-- Generating done
-- Build files have been written to: /home/david/code/build/test
[ 11%] Analyzing with PVS-Studio
Using tracing file: compile_commands.json
Error: License was not entered. Please enter a valid PVS-Studio license or request a trial license at https://www.viva64.com/en/pvs-studio-download/#trial_form
make[2]: *** [CMakeFiles/pvs.dir/build.make:69: PVS-Studio.log.pvs.analyzer.raw] Error 1
make[1]: *** [CMakeFiles/Makefile2:78: CMakeFiles/pvs.dir/all] Error 2
make: *** [Makefile:84: all] Error 2

--- 剪断 ---

CMakeLists.txt 包含以下 PVS-Studio 特定命令:

set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
include($ENV{HOME}/code/repo/other/pvs-studio-cmake-examples/PVS-Studio.cmake)
pvs_studio_add_target(TARGET ALL COMPILE_COMMANDS OUTPUT FORMAT errorfile)

如果上述 PVS-Studio 特定命令被注释掉/禁用,则项目构建得非常好。

根据上面链接的文章,我不应该需要许可证文件。

谢谢,

大卫

4

1 回答 1

3

大卫,

抱歉,这里有点混乱 - 您链接的文章已过时,您错过了包含更新版本链接的免责声明。要让免费版本再次运行,您只需输入一次“免费”许可证,使用以下命令:

pvs-studio-analyzer credentials PVS-Studio Free FREE-FREE-FREE-FREE

输入许可证后,PVS-Studio 免费版将继续正常工作,无需任何操作。

这种行为变化的原因是pvs-studio-analyzer工具内部的额外许可证检查,就在它开始分析之前。这影响了所有版本的 PVS-Studio,而不仅仅是免费版本。此工具的早期版本在开始对单个源文件运行预处理和分析之前未检查许可证。如果用户输入错误的许可证,这会导致问题 - 关于不正确许可证的错误消息不会立即显示,而是仅在依赖项解析和预处理阶段(可能需要一些时间)之后显示,因此用户不知道分析将最终失败。

而且,在 PVS-Studio 自由模式下,由于pvs-studio-analyzer工具本身不知道源文件中是否存在特殊注释(它不会自行解析它们),我们必须“告诉”它应该在自由模式下运行 -因此需要输入一个特殊的“免费”许可证。

于 2020-12-28T09:30:38.417 回答