zoukankan      html  css  js  c++  java
  • 如何使用Ninja快速编译LLVM和Clang

    在使用Make工具编译LLVM是非常耗时的。往往需要三四个小时。但是使用goolge开源的ninja编译LLVM只需要10到20分钟。

    本文以llvm3.3为例,演示在linux上编译和安装过程。

    第一步 安装ninja和cmake

    1 获取并编译安装 ninja

    $ git clone git://github.com/martine/ninja.git
    $ cd ninja
    $ ./bootstrap.py
    $ sudo cp ninja /usr/local/bin/
    Q: warning: A compatible version of re2c (>= 0.11.3) was not found;

    changes to src/*.in.cc will not affect your build.

    A: re2c 是一个用于编写快速灵活的词法分析器的工具.

    $sudo apt-get install re2c

    2 安装 cmake(至少需要 2.8.9):
    用sudo apt-get install cmake得到的是 2.8.7–2013.3.7
    可从http://www.cmake.org/cmake/resources/software.html获 取 最 新 的
    cmake, 再编译.
    编译 cmake 需要 QT4 和 java:
    Q:Could NOT find Qt4 (missing: ...
    A:sudo apt-get install qt-sdk
    Q:fatal error: ext2fs/ext2 fs.h: No such file or directory
    A: sudo apt-get install e2fslibs-dev
    Q:fatal error: curses.h: No such file or directory
    A: sudo apt-get install libncurses5-dev

    第二步下载源代码

    llvm所有的项目的代码的svn库都在:
    http://llvm.org/svn/llvm-project/
    可以使用svn拷贝
    1 下载llvm3.3
    $ svn co http://llvm.org/svn/llvm-project/llvm/branches/release_33/ llvm3.3
    2 下载clang3.3到llvk3.3/tools
    $ cd llvm3.3/tools/
    $ svn co http://llvm.org/svn/llvm-project/cfe/branches/release_33/ clang

    3 下载Compiler RT到llvm3.3/projects
    $ cd ../projects
    $ svn co http://llvm.org/svn/llvm-project/compiler-rt/branches/release_33/ compiler-rt

    第三步 编译和安装

    1 建立build目录
    $ cd llvm3.3/
    $ mkdir build
    2 产生ninja编译文件
    #可以使用-DCMAKE_INSTALL_PREFIX指定安装目录
    $ cmake -G Ninja -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_INSTALL_PREFIX=/opt/llvm3.3 ..
    $ ln -s ../build/compile_commands.json ..
    3 编译

    $ ninja

    4 安装

    $ sudo ninja install

    5 把安装目录加入的环境变量PATH中

    可以在home目录的.bashrc中加入

    export PATH=/opt/llvm3.3/bin/:$PATH

  • 相关阅读:
    设置DELL R720 的CPU 风扇转速
    mysqldump 备份导出数据排除某张表或多张表
    MySQL 之 LOAD DATA INFILE 快速导入数据 (单表数据很大)
    ACL规则 反掩码的 写法
    配置Nginx 支持中文URL
    如何删除IE中的证书
    微软Surface 上网本 键盘失灵
    华为 S2700忘记console口密码
    Dell PowerEdge R710, R720 用U盘装系统
    用php做省份的三级联动 附带数据库
  • 原文地址:https://www.cnblogs.com/fuland/p/3641311.html
Copyright © 2011-2022 走看看