【问题标题】:Why is PVS-Studio asking for a license file on Linux (use PVS-Studio for free, individual developer)?为什么 PVS-Studio 要求 Linux 上的许可证文件(个人开发人员免费使用 PVS-Studio)?
【发布时间】:2021-04-04 08:23:16
【问题描述】:

我正在尝试使用 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 特定命令被注释掉/禁用,则项目构建完美。

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

谢谢,

大卫

【问题讨论】:

    标签: cmake pvs-studio


    【解决方案1】:

    大卫,

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2018-06-08
      • 2017-09-11
      • 2020-02-04
      • 1970-01-01
      • 2019-03-21
      • 2019-01-07
      • 1970-01-01
      • 2017-09-17
      • 2018-01-24
      相关资源
      最近更新 更多