5

在Android平台开发环境安装ninja

 3 years ago
source link: https://note.qidong.name/2017/09/install-ninja/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

在Android平台开发环境安装ninja

2017-09-25 18:31:52 +08  字数:1175  标签: Android Ninja

在Android 7.0以后,Ninja成为了Android底层真正控制编译流程的工具。 直接使用ninja命令,而非make,可以在某些情况下,提高编译验证、debug的效率。

本文介绍安装ninja的五种方法。

管理员安装

一般,Android平台标准的开发环境是Ubuntu。 管理员可以通过以下命令,直接安装。

sudo apt-get install ninja-build

如果是Max OS X(Darwin)环境,也可以用Homebrew安装。

brew install ninja

无root权限安装

在没有root权限的情况下,一共有四种安装方法,推荐使用第一种。

利用pip安装

对于某些没有访问外网条件的环境,需要先配置pip,确保pip能正常安装Python官方源的包。

pip install --user ninja

这个PyPI上的ninja,不算是官方的发布,源于ninja-python-distributions。 如果没有root权限,这个是最简单快捷的安装方法。

如果要说有什么缺点的话,那就是它会在真正的ninja可执行文件外面包一层没有实质功能的Python。 在一些情况下,比如Ctrl+c中断执行时,会额外打印一段Python的trace。

直接从项目中复制

由于Android项目自带ninja的可执行文件,所以,不安装直接使用,也是可能的。

在项目根目录,执行find命令,可以找到ninja可执行文件。

$ find prebuilts -name ninja
prebuilts/build-tools/linux-x86/asan/bin/ninja
prebuilts/build-tools/linux-x86/bin/ninja
prebuilts/build-tools/darwin-x86/bin/ninja

如果工作站为Ubuntu,通常使用中间的那个。 如果是Mac OS X,则使用第三个。 使用起来的大概情况如下。

prebuilts/build-tools/linux-x86/bin/ninja -f out/combined-aosp_arm64.ninja

如果有反复使用的需求,则可以复制该文件到可执行目录下。 比如,用户目录的bin,在Ubuntu上通常就是一个可执行路径。 注意,libc++.so是必须准备的调用库,必须放在与可执行目录同级的lib64。

mkdir -p ~/bin ~/lib64
cp prebuilts/build-tools/linux-x86/bin/ninja ~/bin/
cp prebuilts/build-tools/linux-x86/lib64/libc++.so ~/lib64/

这样就可以直接使用ninja了。

从GitHub下载产物

在Ninja项目的Releases页面,可以直接下载到编译好的主要Ninja版本。 如果有必须使用最新版本v1.8.2的需求,这是最好的办法。 apt、Homebrew、pip和项目自带的ninja,目前(2017年9月)最新版本为1.7.2。

This is a major release after v1.7.2, mainly for performance improvements, support for more path components, and several bugfixes.

v1.8.2版本主要是提升了编译性能。 详情可参考《release: ninja v1.8.2 - Google Groups》。

wget https://github.com/ninja-build/ninja/releases/download/v1.8.2/ninja-linux.zip

解压可得ninja可执行文件,复制到可执行环境下即可运行。

从源码编译安装

这是最不推荐的做法,因为最麻烦。 除非需要改动源码,自定义功能,否则下载官方发布的版本就好了。

然而,俺们是在中国。

由于GitHub的Releases产物,托管在AWS上。 这意味着,在中国下载,会概率性失败。 如果产物过大,还有高概率下载到一半失败。 所以……

在GitHub的ninja-build/ninja下载源码,并传到工作站中。

在源码根目录,执行编译。

./configure.py --bootstrap

复制项目根目录下编译好的ninja到可执行路径下。

cp ninja ~/bin/

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK