使用infer扫描C系列的代码
clang编译器:扫描C系列代码使用的编译器,因为infer内部采用的是clang所以不能使用gcc代替
infer扫描器
cmake: 源码安装clang需要使用
https://cmake.org/files/ 下载需要的版本以及操作系统对应的cmake安装包
下载好之后直接解压然后把cmake中的bin文件夹下的内容添加到环境变量就好
tar -zxvf cmake-xxxxxxxxx.tar.gz
?
vim ~/.bashrc
?
//在.bashrc文件的最后一行添加
export PATH=/..../cmake-xxxx/bin/:$PATH
?
?
?
source ~/.bashrc
cmake --version
如果安装成功使用该指令后会输出cmake的版本信息,如果失败请检查环境变量是否配置正确,还有文件是否下载完整
两种方式:
如果没有开发需求,想要直接使用该工具可以采取这个方式
https://releases.llvm.org/download.html 在该网站上下载二进制文件
第一步,先找到对应的版本,第二步找到Pre-Built Binaries如果没有表示这个版本并没有对应的二进制文件,第三步找到对应的环境如果没有表示该版本的二进制文件不符合你的操作系统要求
对二进制文件进行解压后,将其文件夹下的build文件夹下的bin文件夹添加到环境变量中就可以正常使用了
vim ~/.bashrc
?
//在.bashrc文件的最后一行添加
export PATH=/..../llvm-project.../bin/:$PATH
?
?
?
source ~/.bashrc
$ clang --version
如果安装成功使用该指令后会输出clang的版本信息,如果失败请检查环境变量是否配置正确,还有文件是否下载完整
想要获取最新版本或者想要对该项目进行二次开发可以采取这个方式
源码安装也分为两种方式
将llvm的整个项目包括各种插件全部源码下载
1 找到想要的版本
2 找到对应的source下的llvm-project monorepo文件下载,如果没有那么就不能这样安装了
下载好之后进入llvm-project
//进入llvm-project然後在第一级目录下面新建一个Build文档并进入
mkdir build && cd build
cmake -DLLVM_ENABLE_PROJECTS=clang -G "Unix Makefiles" ../llvm
//这条指针给build文件夹添加各种配置文件
make && make install
//编译安装,也可以采用单独的make clang只对clang编译
vim ~/.bashrc
?
//在.bashrc文件的最后一行添加
export PATH=/..../llvm-project.../bin/:$PATH
?
?
?
source ~/.bashrc
# clang --version
选择性的安装llvm上的所有东西,这里只选择安装llvm和在llvm上使用的clang
https://releases.llvm.org/download.html
第一步:先找到要下載的版本,
第二步:找到Sources标签
第三步:下载llvm source和Clang Source
将下载的clang源文件放到llvm下的llvm/tools文件夹里
在和llvm的同级目录下面执行指令
mkdir build && cd build
cmake -DLLVM_ENABLE_PROJECTS=clang -G "Unix Makefiles" ../llvm
//build根目录和llvm根目录是同级的
vim ~/.bashrc
?
//在.bashrc文件的最后一行添加
export PATH=/..../build/bin/:$PATH
?
?
?
source ~/.bashrc
clang --version
从源码安装infer过于复杂,而且这里没有对infer有二次开发的需求,所以采用从二进制文件来安装infer
https://github.com/facebook/infer/releases/download/v0.17.0/infer-linux64-v0.17.0.tar.xz
vim ~/.bashrc
?
//在.bashrc文件的最后一行添加
export PATH=/..../infer-linux64-v0.17.0/bin/:$PATH
?
?
?
source ~/.bashrc
infer --version
在这个网站里下载测试案例:
https://github.com/facebook/infer/tree/master/examples/c_hello/
infer -- make
如何和图中结果一样就表示安装成功
https://infer.liaohuqiu.net/docs/getting-started.html
https://clang.llvm.org/get_started.html
https://blog.csdn.net/sealjin/article/details/45221209
原文:https://www.cnblogs.com/Sna1lGo/p/14714174.html