gpt4 book ai didi

c++ - clang 静态分析器(扫描构建)可以与 cmake --build 一起使用吗?

转载 作者:行者123 更新时间:2023-12-03 16:28:23 25 4
gpt4 key购买 nike

我想使用 clang 静态分析器命令行工具 scan-build cmake --build 的便利.

Mostresources我在网上发现似乎表明您需要一个两步过程:

scan-build cmake .
scan-build make

例如,对于这个带有 scan-build 错误的小示例程序捕获:
#include <iostream>

int fun() {
int x;
return x; # main.cpp:5:5: warning: Undefined or garbage value returned to caller

}

int main() {
int a = fun();

std::cout << "Hello, World! " << a << std::endl;
}
CMakeLists.txt :
cmake_minimum_required(VERSION 3.5)
project(test_program)

set(CMAKE_CXX_STANDARD 11)

set(SOURCE_FILES main.cpp)
add_executable(test_program ${SOURCE_FILES})

如果我运行 scan-build cmake --build cmake-build-release/即使构建了二进制文件,它也没有找到错误。有没有办法拿到 scan-build使用 CMake 在一个步骤过程中工作?

最佳答案

如果你想使用 Clang 静态分析器,你应该只设置 CMAKE_EXPORT_COMPILE_COMMANDS=YES .这将创建一个 CSA 可以读取的编译数据库。您甚至不需要构建您的项目。该文件位于:/path/to/build/compile_commands.json .scan-build专为无法自行创建编译数据库的项目而设计。
然后你可以运行:

analyze-build --cdb /path/to/build/compile_commands.json \
--use-analyzer /path/to/clang \
--output /path/to/output
值得注意的是 clang-tidy现在有所有的 CSA 检查。您可以使用相同的编译数据库技术来运行 clang-tidy在你的代码库上。

关于c++ - clang 静态分析器(扫描构建)可以与 cmake --build 一起使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42393627/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com