原始引用地址: ninja使用
time: 2010.01.13 22:11
概述
在android和chrome,還有webrtc的項目中都用到了ninja作爲編譯項目使用工具,與之對應的工具我們比較熟悉的是make,cmake。網上搜索ninja,說的ninja代理make最大的優點是編譯速度,使用ninja相比與make在編譯android和chrome時,可以節省大量的時間。
簡單使用
首先工程目錄有以下文件:
bar.c bar.h build.ninja foo.c
bar.c中定義了一個變量和函數,供foo.c調用:
// Filename: bar.c
#include "bar.h"
#include <stdio.h>
int g_bar = 0;
int run_bar()
{
printf("g_bar = %d\n", g_bar);
return 0;
}
foo.c內容爲:
// Filename: foo.c
#include <stdio.h>
int main()
{
int a = 10;
int b = 5;
printf("ok");
}
ninja編譯腳本內容爲:
# Filename: build.ninja
cc = g++
cflags = -Wall
rule cc
command = gcc $cflags -c $in -o $out
description = compile .cc
build out/bar.o: cc bar.c
build out/foo.o: cc foo.c
注意以上rule cc下面,command前面爲兩個空格,直接使用tab鍵,測試不行
編譯方法
編譯命令爲:
ninja
清理命令爲:
ninja -t clean
代碼已上傳到github:
https://github.com/xyyangkun/t_ninja
參考: