Clang Static Analyzer 系列(一)编译 Clang 及运行 Checker

编译 Clang

CSA (Clang Static Analyzer) 是 clang 的一部分。建议使用自行编译的 clang ,源码在 llvm/llvm-project (github.com) 上获取。

编译 clang 前首先要生成 clang 的编译脚本。在生成 clang 的编译脚本时通常需要设置如下几个参数:

  • -S 源代码路径

  • -B 生成的编译脚本放置的目录

  • -G 编译工具的选择,对应生成不同工具需要的编译脚本,如 ninja ,默认是 make 和 cmake

  • -DLLVM_ENABLE_PROJECTS 说明要编译的子项目,如 clang 、 clang-tools-extra 等,默认是 all

  • -DCMAKE_BUILD_TYPE 说明编译的类型,如 Debug 、 Release 等,默认是 Debug

  • -CMAKE_INSTALL_PREFIX 类似于 configure 脚本的 –prefix ,用于配合 INSTALL 指令( make install )使用,指定安装路径

  • -DCMAKE_CXX_COMPILERDCMAKE_C_COMPILER 指定使用的编译器,如 clang 或 gcc

使用 cmake 的例子1:

cd llvm-project
mkdir build
cd build
cmake -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra" -DCMAKE_BUILD_TYPE=Release -G "Unix Makefiles" ../llvm
cmake -DLLVM_ENABLE_PROJECTS=clang -G "Unix Makefiles" ../llvm
make

使用 cmake 的例子2:

git clone --depth 1 --branch llvmorg-12.0.1 https://github.com/llvm/llvm-project.git
cmake -S llvm-project/llvm -B llvm-project/build \
        -DCMAKE_BUILD_TYPE=Release \
        -DLLVM_ENABLE_PROJECTS=all \
        -DCMAKE_CXX_COMPILER=clang++ \
        -DCMAKE_C_COMPILER=clang
cmake --build llvm-project/build -j8
cmake --install llvm-project/build --prefix /usr/local  # or somewhere else

使用 ninja 的例子:

cd llvm-project
mkdir build
cd build
cmake -S ../llvm -B buil
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值