我希望您能使用clang静态分析器命令行工具
例如,对于这个有错误的小程序,
如果我运行
scan-build
,并且方便地使用cmake --build
。大多数我在网上找到的资源似乎都表明您需要进行两个步骤:首先
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 --build <dir> --target <tgt>
命令来达到你想要的效果。但为什么浪费时间呢?只需在两个scan-build
步骤周围加上包装器即可。 - negacmake --build
,因为它可以将所有生成的文件都整齐地放在一个文件夹中,而不是把它们全部放在项目的根目录下。 - phoenix--build
的情况下控制它。我将源代码和构建目录放在一起。这样,你只需要执行cd myproj/build; cmake ../src/
即可。 - nega