缘由

由于公司产出代码的时候会使用静态扫描工具检测代码的质量,所以自己就想动手尝试一番infer整个的使用方式和使用效果,便动手安装了infer,结果安装过程中遇见太多的坑,导致很多时候都安装失败,这篇文章主要就是为记录各个坑而产生的

infer提供了在Mac和linux下安装的教程,我所使用的是Mac,所以在这里只介绍在Mac下的安装

首先是环境要求:

  • opam >= 1.2.0
  • Python 2.7
  • Java (only needed for the Java analysis)
  • clang in Xcode command line tools. You can install them with the command xcode-select --install (only needed for the C/Objective-C analysis)
  • Xcode >= 6.1 (only needed for the C/Objective-C analysis)

介绍安装:

  • 在安装opam前先安装brew,brew 又叫Homebrew,是Mac OSX上的软件包管理工具,能在Mac中方便的安装软件或者卸载软件, 只需要一个命令

    安装命令如下:
curl -LsSf http://github.com/mxcl/homebrew/tarball/master | sudo tar xvz -C/usr/local --strip 1
  • 接着安装opam:
sudo brew install opam # Homebrew, OSX Mavericks or later
  • 安装clang
xcode-select --install
  • 配置opam
  opam init -y --comp=4.01.0
  eval `opam config env`
  opam install -y extlib.1.5.4 atdgen.1.6.0 javalib.2.3.1 sawja.1.5.1
  • 安装JDK(我在这一步犯了很大的错误,我以为mac默认已经安装了JDK环境的,结果最后才知道我的电脑没有安装....)

[官方地址] :http://www.oracle.com/technetwork/java/javase/downloads/index.html

接下来是最主要的工作,也是很漫长的工作

安装infer

克隆infer的git地址:

git clone https://github.com/facebook/infer.git

cd infer

git submodule update --init --recursive

安装clang工具:

这里有两个需要注意的点: 一是在shell脚本里面是需要安装cmake工具的,所以你需要用到命令行: brew install cmake

二是整个过程大概10几20分钟,可以睡个觉~

facebook-clang-plugins/clang/setup.sh

接下来:

以下两步为原始答案:(但是我无论怎么试都是提示命令找不到)

  1. ./compile-fcp.sh
  2. make -C infer

所以只能另辟蹊径:

查阅官方文档:

https://github.com/facebook/infer/blob/master/INSTALL.md

得知使用下列命令可以解决:

./build-infer.sh clang(有可能还需要升级: 使用opam update)

参考链接:

  1. http://blog.csdn.net/elisa1988/article/details/46531745
  2. http://infer.liaohuqiu.net/docs/getting-started.html
  3. http://blog.csdn.net/itfootball/article/details/46474235
  4. http://www.cnblogs.com/hlfme/p/4623551.html

facebook的infer检测工具的安装的更多相关文章

  1. PHP 代码质量检测工具的安装与使用

    代码统计工具 PHPLOC安装:wget https://phar.phpunit.de/phploc.phar chmod +x phploc.phar sudo mv phploc.phar /u ...

  2. 【转】Unix下C程序内存泄漏检测工具Valgrind安装与使用

    Valgrind是一款用于内存调试.内存泄漏检测以及性能分析的软件开发工具. Valgrind的最初作者是Julian Seward,他于2006年由于在开发Valgrind上的工作获得了第二届Goo ...

  3. netdata检测工具的安装与使用

    Netdata 是一款 Linux 性能实时监测工具..以web的可视化方式展示系统及应用程序的实时运行状态(包括cpu.内存.硬盘输入/输出.网络等linux性能的数据). Netdata文档地址: ...

  4. windows下代码规范检测工具sonarqube安装与使用,含与maven的结合

    一.首先下载sonarqube   地址 : https://www.sonarqube.org/downloads/   (最新版本支持java11+,博主下载支持java8的版本7.7), 下载S ...

  5. Sublime text3 JS语法检测工具安装及使用

    Sublime text3 JS语法检测工具安装及使用 工具/原料 sublime text3 nodejs sublimeLinter sublimeLinter-jshint 方法/步骤 首先ct ...

  6. 部署安装snort--入侵检测工具

    1:部署安装snort yum -y install wget 2: 基本依赖环境 yum -y install gcc flex bison zlib zlib-devel libpcap libp ...

  7. dll文件32位64位检测工具以及Windows文件夹SysWow64的坑

    自从操作系统升级到64位以后,就要不断的需要面对32位.64位的问题.相信有很多人并不是很清楚32位程序与64位程序的区别,以及Program Files (x86),Program Files的区别 ...

  8. LeakCanary内存泄漏检测工具使用步骤

    LeakCanary内存检测工具使用步骤: 第一步,进入app目录下的build.gradle,在最下面找到dependencies{},里面添加如下三行语句: debugCompile 'com.s ...

  9. U盘启动 WinPE系统维护工具 任意安装GHO/WIM/ESD系统映像 无广告专业版

    WinPE系统维护工具简介: 1.工具箱基于Windows 8 64位系统制作. 2.强大的DG分区工具专业版4.9.1(DOS版为4.9.0). 3.破解windows密码工具. 4.硬盘.内存检测 ...

随机推荐

  1. jmeter 正则获取参数集合和ForEach控制器结合使用(转)

    怎么把第一个请求获取的返回的多个id,在第二个请求中逐个以单个id作为请求参数来请求? 为了解决这个问题,模拟下该场景 1.请求www.163.com 主页,获取响应中的所有数字,这个获取的数字集合暂 ...

  2. python学习二(文件与异常)

    Python中使用open BIF与文件交互,与for语句结合使用,一次读取一行 读取文件sketch.txt,文件内容如下: Man: Ah! (taking out his wallet and ...

  3. (转载)ASP.NET Quiz Answers: Does Page.Cache leak memory?

    原文地址:http://blogs.msdn.com/b/tess/archive/2006/08/11/695268.aspx "We use Page.Cache to store te ...

  4. Swift网络库Alamofire的导入

    一.手动导入 1, 官网下载 Alamofire 2, 解压下载的文件 放入工程的顶层目录下 3, 打开工程 Add Files 4, 选中项目 TARGETS > General > E ...

  5. centos yum 安装mysql5.7 以及 默认root密码查看

    1.  首先更新rpm 从MySQL Yum仓库下载最新的rpm文件:http://dev.mysql.com/downloads/repo/yum/ (需要Oracle帐号以及填写一些使用信息,才能 ...

  6. img IE下支持最大宽度

    border:0 none; max-width: 560px; height:auto; width:expression(this.width > 600 ? "600px&quo ...

  7. 部署JavaWeb时出现 If a file is locked,you can wait until

    在部署JavaWeb程序时出现了if a file is locked ,you can wait until the lock stop的问题,这个主要是classpath目录出错或者jar包未导入 ...

  8. pat甲级1013

    1013 Battle Over Cities (25)(25 分) It is vitally important to have all the cities connected by highw ...

  9. java Vamei快速教程03 构造器和方法重载

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在方法与数据成员中,我们提到,Java中的对象在创建的时候会初始化(initial ...

  10. linux 命令——44 top (转)

    top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.下面详细介绍它的使用方法.top是 一个动态显示过程,即可以通过用户按键来不断刷 ...