linux下infer环境搭建

百般思念 提交于 2019-12-06 08:36:11

搭建infer前需要

    配置JDK1.7+ python2.7+ocamlc+opam,文中详解

 infer下载地址:https://github.com/facebook/infer/releases/  下载:infer-linux64-v0.8.1.tar.xz

1、将infer-linux64-v0.8.1.tar.xz拷贝至你的目录中,注意使用root身份登录,拷贝至/root中。

    #cp infer-linux64-v0.8.1.tar.xz 

2、解压缩。

    #tar xf  infer-linux64-v0.8.1.tar.xz  或直接双击解压缩.  

3、检查编译

    #./configure 

        你可能会遇到错误:

            configure: error: ocamlc not found.   

         这是未安装ocamlc的原因,解决办法,

        安装ocamlc: sudo apt-get install ocamlc 

    再次运行  ./configure 

    可以遇到以下错误:

        

        原因缺少atdgen,解决办法:

        sudo  apt-get install atdgen    结果会发现找不到对应的软件安装

        那我们可以去atdgen官网下载安装:https://launchpad.net/ubuntu/+source/atdgen

        

          这样会很复杂,我们不是安装了ocamlc。

         根据其中的提示,我们可以使用opam安装缺少的插件。运行:sudo opam install atdgen ,若是当前opam环境没有配置好,我们需要先配置opam环境。

        

        我们先配置好apam环境:

        ./opam init --comp=4.02.3  

        eval `./opam config env` 

        然后运行  opam switch  我们可以看到我们系统中有哪些版本的编译器了。

        

        然后运行  sudo opam install atdgen  ,就可以安装了

        接下来在运行检查编译还有可能会遇到 configure: error: missing dependency: XXXXXXX .  类似的软件缺失提示,我们只要按照上面的步骤安装补全即可,据我安装经验会需要javalib、oUnit、extlib、camlzip、atdgen、sawja(按顺序安装出错概率小)

        这些都安装好了,还有可能会提示:  configure: error: javac not found.   原因是没有java环境,注意,暂时它只支持1.7版本的java,装了更高版本的依然会报错的。

          apt-get install openjdk-7-jdk   会找不到安装包

          opam install openjdk-7-jdk   也会找不到安装包

        我们只能选择离线安装了,去官网下载jdk安装包,注意选择对应系统属性的

        

       Linux下 java的离线安装配置:http://my.oschina.net/hibony/blog/693581

        还需要python2.7的环境,其他版本也会有问题。当然linux一般默认自带python环境,而且就是2.7版本的,所以我们可以不用管。执行python便可以看到当前的python版本。

        

4、编译

    检查通过后,将生成用于编译的MakeFile文件。此时,可以开始进行编译。

    #make  或者  make java 

5、安装

    成功编译后,开始安装。

    #make install

6、安装清理

    安装完毕,应清除编译过程中产生的临时文件和配置过程中产生的文件。

    #make clean

    #make distclean

至此,安装结束。

如果要卸载,则执行make uninstall

记录一下遇到的问题:

./configure   提示:Package atdgen is already installed (current version is 1.6.0).
opam install atdgen 提示:findlib package atdgen version 1.6.0... not found

冲突之后使用:./build-infer.sh*  

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!