我在将clang的静态分析器集成到cmake工具链时遇到了问题。
有一个很大的C ++项目,有很多第三方库,我想从静态分析过程中排除。
假设我的shell脚本包含以下内容
CCC_CC=clang
CCC_CXX=clang++
cmake -G "Unix Makefiles" -DCMAKE_C_COMPILER=path-to-ccc-analyzer -DCMAKE_CXX_COMPILER=path-to-cxx-analyzer ../project_root
scan-build make -j3
然后我在第三方子目录中有CMakeLists.txt
project(my_third_party)
add_library(my_third_party STATIC main.cpp)
如何让clang忽略这个项目?
我通过网络发现我需要以这种方式设置CXX_FLAGS
project(my_third_party)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Xanalyzer -analyzer-disable-checker")
add_library(my_third_party STATIC main.cpp)
但是在编译期间c++-analyzer
被调用时,此方法似乎不起作用。 (是的,我也为C项目设置了CMAKE_C_FLAGS
)
正如我理解的那样,我需要直接调用clang++ --analyze
以便能够禁用检查或以某种方式编辑ccc-analyzer
perl脚本以跳过分析步骤。
我想念一下吗?这可以解决eaiser吗?=)