运行的Ninja例子,build.ninja文件怎么写?
ninja
a small build system with a focus on speed
项目地址:https://gitcode.com/gh_mirrors/ni/ninja
免费下载资源
·
- 如果你使用的是Windows + MSYS2 + MinGW64
- 已提前安装过gcc
- msys2命令行中使用 pacman -S mingw-w64-x86_64-ninja 安装Ninja软件
- 如何搜索msys2中的软件 https://packages.msys2.org/package/mingw-w64-x86_64-ninja?repo=mingw64
jim@DESKTOP-SVP3BEM MSYS /d/1_git/OH-NEXT-Kernel
$ pacman -S mingw-w64-x86_64-ninja
resolving dependencies...
looking for conflicting packages...
Packages (1) mingw-w64-x86_64-ninja-1.11.1-2
Total Download Size: 0.44 MiB
Total Installed Size: 1.73 MiB
:: Proceed with installation? [Y/n] y
:: Retrieving packages...
mingw-w64-x86_64-ninja-1.1... 449.2 KiB 286 KiB/s 00:02 [###############################] 100%
(1/1) checking keys in keyring [###############################] 100%
(1/1) checking package integrity [###############################] 100%
(1/1) loading package files [###############################] 100%
(1/1) checking for file conflicts [###############################] 100%
(1/1) checking available disk space [###############################] 100%
:: Processing package changes...
(1/1) installing mingw-w64-x86_64-ninja [###############################] 100%
jim@DESKTOP-SVP3BEM MSYS /d/1_git/OH-NEXT-Kernel
$ ninja --version
1.11.1
-
如果是Ubuntu系统,则用下面命令安装软件:
- sudo apt install ninja-build
-
安装好的软件在msys2的 /mingw64/bin/ 目录下
-
将这个目录加入到Linux也就是msys2的环境变量中,如果你曾经添加过,则就不要重复添加了
echo export PATH=$PATH:/mingw64/bin >> ~/.bashrc
打开家目录下的.bashrc隐藏文件,在最后面加入一行:export PATH=$PATH:/mingw64/bin,保存并关闭文件- source ~/.bashrc 立即生效环境变量
-
默认的构建文件为当前目录下的 build.ninja 文件,类似于Linux中的Makefile文件
- ninja软件只实现最基本的功能,一般需要其它上层软件来生成一个build.ninja文件,例如Gn软件
- 你也可以手写build.ninja文件,就像你手写Makefile文件,但是不建议你这么做,所以你也不用看懂ninja配置文件怎么写,以后还是用Gn工具来生成它,下面我会手写一个简单的配置文件,其语法也和Makefile类似,使用了两个空格代替Makefile的tag键。
-
进入到本仓库的ninja演示目录
- cd /d/1_git/OH-NEXT-Kernel/src/standalone/01_ninja
-
新建一个mian.c文件,写上hello world输出
jim@DESKTOP-SVP3BEM MSYS /d/1_git/OH-NEXT-Kernel/src/standalone/01_ninja
$ cat main.c
#include <stdio.h>
int main()
{
printf("hello world\n");
fflush(stdout);
while (1);
return 0;
}
- touch build.ninja 新建一个ninja配置文件,写上编译参数
jim@DESKTOP-SVP3BEM MSYS /d/1_git/OH-NEXT-Kernel/src/standalone/01_ninja
$ cat build.ninja
cc = gcc
cflags = -Wall
rule cc
command = $cc $cflags -c $in -o $out
build main.o: cc main.c
rule link
command = $cc $cflags $in -o $out
build demo.exe: link main.o
jim@DESKTOP-SVP3BEM MSYS /d/1_git/OH-NEXT-Kernel/src/standalone/01_ninja
- 编译命令为 ninja 类似于make的用法
- 清除上次编译结果的命令为 ninja -t clean
jim@DESKTOP-SVP3BEM MSYS /d/1_git/OH-NEXT-Kernel/src/standalone/01_ninja
$ ls
build.ninja main.c
jim@DESKTOP-SVP3BEM MSYS /d/1_git/OH-NEXT-Kernel/src/standalone/01_ninja
$ ninja
[2/2] gcc -Wall main.o -o demo.exe
jim@DESKTOP-SVP3BEM MSYS /d/1_git/OH-NEXT-Kernel/src/standalone/01_ninja
$ ls
build.ninja demo.exe main.c main.o
jim@DESKTOP-SVP3BEM MSYS /d/1_git/OH-NEXT-Kernel/src/standalone/01_ninja
$ ./demo.exe
hello world
jim@DESKTOP-SVP3BEM MSYS /d/1_git/OH-NEXT-Kernel/src/standalone/01_ninja
$ ninja -t clean
Cleaning... 2 files.
jim@DESKTOP-SVP3BEM MSYS /d/1_git/OH-NEXT-Kernel/src/standalone/01_ninja
$ ls
build.ninja main.c
jim@DESKTOP-SVP3BEM MSYS /d/1_git/OH-NEXT-Kernel/src/standalone/01_ninja
为了能让大家更好的学习鸿蒙(HarmonyOS NEXT)开发技术,这边特意整理了《鸿蒙开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05
《鸿蒙开发学习手册》:
如何快速入门:https://qr21.cn/FV7h05
- 基本概念
- 构建第一个ArkTS应用
- ……
开发基础知识:https://qr21.cn/FV7h05
- 应用基础知识
- 配置文件
- 应用数据管理
- 应用安全管理
- 应用隐私保护
- 三方应用调用管控机制
- 资源分类与访问
- 学习ArkTS语言
- ……
基于ArkTS 开发:https://qr21.cn/FV7h05
- Ability开发
- UI开发
- 公共事件与通知
- 窗口管理
- 媒体
- 安全
- 网络与链接
- 电话服务
- 数据管理
- 后台任务(Background Task)管理
- 设备管理
- 设备使用信息统计
- DFX
- 国际化开发
- 折叠屏系列
- ……
鸿蒙开发面试真题(含参考答案):https://qr18.cn/F781PH
鸿蒙开发面试大盘集篇(共计319页):https://qr18.cn/F781PH
1.项目开发必备面试题
2.性能优化方向
3.架构方向
4.鸿蒙开发系统底层方向
5.鸿蒙音视频开发方向
6.鸿蒙车载开发方向
7.鸿蒙南向开发方向
GitHub 加速计划 / ni / ninja
10.88 K
1.57 K
下载
a small build system with a focus on speed
最近提交(Master分支:2 个月前 )
dcefb838
Fix typo: Explaantions -> Explanations 5 个月前
2f19d3a0 - 5 个月前
更多推荐
已为社区贡献3条内容
所有评论(0)