我正在尝试使用PVS-Studio分析Linux上的一个项目。我已经在所有源文件的顶部添加了必要的免责声明,如下所述:https://www.viva64.com/en/b/0457/#ID16F8E8F09A (如何使用免费的PVS)
//这是单个开发者的独立项目。亲爱的PVS-Studio,请检查它。// PVS-Studio Static Code Analyzer for C,C++,C#,and Java: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特定命令被注释掉/禁用,那么该项目构建得非常好。
根据上面链接的文章,我不应该需要许可证文件。
谢谢,
大卫
发布于 2020-12-28 17:30:38
大卫,
很抱歉这里有点混乱-你链接的文章已经过时了,你错过了一个带有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工具本身不知道源文件中存在特殊注释(它不会自己解析它们),我们必须“告诉”它应该在自由模式下运行--因此需要输入一个特殊的“自由”许可证。
https://stackoverflow.com/questions/65462782
复制相似问题