Ninja Build

centos7.9编译安装构建系统gn+ninja 1前言 环境Win10主机+VMware15.5+Centos7.9 登录用户:root Ninja 是Google推出的注重速度的构建工具,一般在Unix/Linux上的程序通过make/makefile来构建编译,而Ninja通过将编译任务并行组织,大大提高了构建速度。Gn, 其详细名称猜测为generate ninja,是专用于生成ninja文件的元构建系统。 2准备工作 2.1准备编译环境 yum -y install git automake libtool 2.2编译安... 阅读详情
NinjaBuild  
Using the Ninja build system 
build
Updated  Mar 28, 2014 by  thakis@chromium.org

Ninja is a build system written with the specific goal of improving the edit-compile cycle time. It is used by default everywhere except when building for iOS.

Ninja是致力于节约编译周期的编译系统,除ios外,其余地方都可用。

Ninja behaves very similar to Make -- the major feature is that it starts building files nearly instantly. (It has a number of minor user interface improvements to make as well.)

Ninja和Make表现方式类似--主要的特诊是立即编译

Read more about Ninja at the Ninja home page.

Using it

Configure your system to use Ninja

Install

Ninja is included in depot_tools as well as gyp, so there's nothing to install.

Build instructions

To build Chrome:

cd /path/to/chrome/src
ninja -C out/Debug chrome

Specify out/Release for a release build. I recommend setting up an alias so that you don't need to type out that build directory path.

If you want to build all targets, use ninja -C out/Debug all. It's faster to build only the target you're working on, like 'chrome' or 'unit_tests'.

Android

Identical to Linux, just make sure OS=android is in your GYP_DEFINES. You want to build one of the apk targets, e.g. content_shell_apk.

Windows

Similar to Linux. It uses MSVS's cl.exe, link.exe, etc. so you still need to have VS installed. To use it, open cmd.exe, go to your chrome checkout, and run:

和Linux类似,其用MSVS's cl.exe,link.exe,因此,你需要安装VS,具体使用方式如下,使用cmd,目录切换至chrome

set GYP_DEFINES=component=shared_library
python build\gyp_chromium
ninja -C out\Debug chrome.exe

component=shared_library optional but recommended for faster links.

可选,但建议设置上,这样可以更快地进行链接

You can also set GYP_GENERATORS=ninja,msvs to get both VS projects generated if you want to use VS just to browse/edit (but then gyp takes twice as long to run).

 GYP_GENERATORS=ninja,msvs用于获取ninja和VS工程,可以选择其中一个

If you're using Express or the Windows SDK by itself (rather than using a Visual Studio install), you'll need to run from a vcvarsall command prompt.

如果你使用Express版或者Windows SDK(没有安装Vs),你需要从vcvarsall命令提示符下运行

Debugging

Miss VS for debugging?

devenv.com /debugexe chrome.exe --my-great-args "go here" --single-process etc

Miss Xcode for debugging? Read http://dev.chromium.org/developers/debugging-on-os-x/building-with-ninja-debugging-with-xcode

Without Visual Studio

That is, building with just the WinDDK. This is documented in the regular build instructions.

Tweaks

Building through errors

Pass a flag like -k3 to make Ninja build until it hits three errors instead of stopping at the first.

Parallelism

Pass a flag like -j8 to use 8 parallel processes, or -j1 to compile just one at a time (helpful if you're getting weird compiler errors). By default Ninja tries to use all your processors.

More options

There are more options. Run ninja --help to see them all.

Custom build configs

You can write a specific build config to a specific output directory via the -G flags to gyp. Here's an example from jamesr: build/gyp_chromium -Gconfig=Release -Goutput_dir=out_profiling -Dprofiling=1 -Dlinux_fpic=0

Bugs

If you encounter any problems, please file a bug at http://crbug.com/new with label ninja and cc thakis@ or scottmg@. Assume that it is a bug in Ninja before you bother anyone about e.g. link problems.

鸿蒙OH实战开发:运行的Ninja例子,build.ninja文件怎么写? 默认的构建文件为当前目录下的 build.ninja 文件,类似于Linux中的Makefile文件。将这个目录加入到Linux也就是msys2的环境变量中,如果你曾经添加过,则就不要重复添加了。新建一个mian.c文件,写上hello world输出。的 /mingw64/bin/ 目录下。进入到本仓库的ninja演示目录。 阅读详情

相关推荐

Ninja构建系统实战--从零手写BUILD.ninja驱动C++项目

本文详细介绍了如何从零开始使用Ninja构建系统手写BUILD.ninja文件来驱动C++项目。通过环境配置、文件结构解析和实战示例,帮助开发者掌握Ninja的极简设计哲学和高效构建能力,显著提升项目编译速度。特别适合需要频繁重新编译的中小型C++项目。

weixin_30698527的博客 536

Ninja构建系统入门--手敲一遍BUILD.ninja

Ninja构建系统入门--手敲一遍BUILD.ninja准备啥子是Ninnja开始编译手动编写 .ninja 文件结束 准备 啥子是Ninnja Ninja 是Google的一名程序员推出的注重速度的构建工具,一般在Unix/Linux上的程序通过make/makefile来构建编译,而Ninja通过将编译任务并行组织,大大提高了构建速度。 开始 下面简单介绍下通过编译 Ninja 源码的方式来安装 首先,确保已经安装了这些依赖:g++,graphviz,gtest,git,re2c 和 python2.7

无与伦比的傻 9287

【问题】CMake was unable to find a build program corresponding to "Ninja".

背景描述 使用eclipse导入了一个CMake的C++项目,项目本身是完整可编译的,即,在命令行下使用cmake、make最终可以编译出目标文件。但是,导入eclipse之后,无法进行编译,报错信息为:CMake was unable to find a build program corresponding to "Ninja". 我使用的操作系统是ubuntu16.04.5。 探索过程...

fibbery学习笔记 1万+

linux安装ninja-build

https://www.saoniuhuo.com/question/detail-2480841.htmlhttps://www.cnblogs.com/bjarnescottlee/p/13872893.html 2、获取源码、并编译安装 备用下载地址: https://down.24kplus.com/linux/re2c-1.1.1.tar.gz 官方安装文档: — re2c 3.0 documentation这样就安装完毕了,因为re2c作为基础依赖,所以这里采

yygr的博客 3187

[STM32]HAL STM32F103 软件I2C读写MPU6050(附DMP库移植)

本文介绍了如何在STM32F103C8T6上通过I2C协议与MPU6050传感器通信并实现DMP功能。首先,使用STM32CubeMX配置项目,设置时钟和I2C接口。然后,编写软件I2C协议的读写函数与MPU6050交互。接着,移植DMP库并进行必要修改,获取加速度计和陀螺仪数据,并将其转换为欧拉角显示在OLED上。最后,利用Keil的逻辑分析仪监测I2C时序。

m0_56841583的博客 2321

Comsol 管道导波裂纹检测:从建模到求解的完整流程解析

本文详细解析了使用Comsol Multiphysics进行管道导波裂纹检测的完整仿真流程。从几何建模、材料定义、物理场设置到网格划分与求解后处理,系统阐述了如何构建高保真虚拟模型以模拟导波与裂纹的相互作用。重点分享了激励信号设置、频散效应处理及参数化扫描等实战技巧,旨在帮助工程师与研究人员高效优化无损检测方案,降低实验成本。

weixin_29207439的博客 73

Cetos7更改yum源镜像实现安装ninja-build软件包

Cetos7更改yum源镜像实现安装ninja-build软件包

weixin_42994470的博客 7123

华为硬件逻辑岗笔试题(一)

积少成多,集腋成裘,坚持!!! 目录 1. 进制转换 2. 状态机和编码方式 3. 存储器的分类 4. Verilog语法中的操作符 5. 对组合逻辑的认识 6. 对时序逻辑的认识 7. 竞争冒险的认识 8. 基本时序逻辑电路 9. 建立时间和保持时间 10. 同步时序电路 11. 组合逻辑和时序逻辑判断 13. 基本总线的理解 14.加法器 15.FPGA开发工具 1. 进制转换 1、十进制46.25对应的二进制表达式为( )。 A 101110.11...

qq_42235129的博客 1万+

构建工具: Ninja 学习笔记

Ninja 是一个基于 Ninja Build System 或简称为 Ninja 的构建工具。它旨在提供一种高效的、易于理解的构建系统,适用于各种规模的项目。Ninja 将构建过程分解为相互独立的任务,并使用简洁的文件格式来描述构建规则,从而实现快速和可靠的构建。Ninja 是一个强大而高效的构建工具,适用于各种规模的项目。本篇博客对 Ninja 的使用方法和原理进行了全面的介绍,并提供了相关的学习笔记。希望这些内容能够帮助你更好地理解和应用 Ninja。

m0_72410588的博客 3340

A算法的蒙特卡洛树搜索

A*算法的蒙特卡洛树搜索 作者:禅与计算机程序设计艺术 1. 背景介绍 在人工智能和游戏开发领域,搜索算法是一个非常重要的研究方向。其中A算法和蒙特卡洛树搜索是两种广泛应用的经典算法。A算法是一种启发式搜索算法,通过评估各个节点到目标节点的启发式代价来引导搜索方向,在

AI天才研究院 1730

2024美团秋招硬件开发笔试真题及答案解析

在 Linux 内核的网络设备驱动中,数据链路层的功能通常由网络协议栈的低层(如以太网驱动)实现,而不是作为网络设备驱动的一个独立层次。在 FreeRTOS 中,任务通知(Task Notifications)是一种轻量级的事件传递机制,用于在任务之间或任务与中断之间传递信号。小美正在开发一个简单的密码生成器,其中一个功能是将输入的字符串中的所有字母按字母顺序循环前移一位(即 'a' 变为 'z','B' 变为 'A',以此类推)。它包含了网络设备的各种参数和方法,用于管理网络设备的初始化、配置和操作。

XU157303764的博客 1674

5 一个能直接运行的Ninja例子,build.ninja文件怎么写?

默认的构建文件为当前目录下的 build.ninja 文件,类似于Linux中的Makefile文件。将这个目录加入到Linux也就是msys2的环境变量中,如果你曾经添加过,则就不要重复添加了。安装好的软件在msys2的 /mingw64/bin/ 目录下。新建一个mian.c文件,写上hello world输出。进入到本仓库的ninja演示目录。

qq582880551的博客 1732

MISRA C 详解 · 专栏06:2023 与 2025 更新总览(相对 2012 的差异)

本专栏 01~05 篇基于(143 规则 + 16 指令)。这六年间标准又前进了两步——(大改)和(微调)。本文补充说明「相对 2012,标准变在哪」,并给出新增规范的代表性示例。

XavierKong的博客 72

【微知】Centos中如何安装ninja?(yum install ninja-build)

Mellanox用户态程序rdma-core使用了cmake和ninja,本文记录ninja安装步骤。

技术札记 1675

嵌入式工程师成长之路(10)——项目举例

送给大学毕业后找不到奋斗方向的你(每周不定时更新)

云轩阁 5万+

Claude Code 完全指南:从入门到精通

《AI编程助手ClaudeCode深度指南》摘要 ClaudeCode作为新一代AI编程助手,凭借200K tokens的超长上下文窗口和深度代码理解能力,正在重塑开发工作流程。本文系统介绍了从安装配置到高级应用的完整使用指南: 核心优势包括: 项目级代码理解能力 Agent自主规划复杂任务 原生终端集成支持 多文件协同编辑功能 实战应用场景: 快速理解陌生项目架构 诊断性能瓶颈并提供优化方案 自动生成符合规范的API代码 开发可复用技术组件 高级技巧: 通过CLAUDE.md定义项目规范 合理使用/cle

分享AI、区块链技术及应用,未来已来 603

ninja: build stopped: subcommand failed.

ninja安装 vs2015以后的版本默认安装了ninja,打开vc command tool即可使用 源码安装: git clone git://github.com/ninja-build/ninja.git && cd ninja “C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat” x64 python configure.py --bootstrap ninja rules 其中inc

daoer_sofu的专栏 4万+

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

android build.ninja,Android中的Ninja简介

Android中的Ninja简介2017-08-15 16:49:42 +08字数:2671标签:AndroidMakefileNinja如果说Makefile是一个DSL,那么Ninja就是一种配置文件。本文简单介绍Android中的Ninja。Makefile与Ninja的对比 ¶二者最核心的区别,在于设计哲学。Makefile是设计来给人手写的,而Ninja设计出来是给其它程序生成的。如果说...

weixin_35192920的博客 1224

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

ninja: error: manifest ‘build.ninja’ still dirty after 100 tries

查看具体原因 ninja -C out/ -d explain 注:out为build.ninja存放文件夹 如果是以下错误 ninja: error: manifest ‘build.ninja’ still dirty after 100 tries output build.ninja older than most recent input ../build/gen.py (1...

小郑的专栏 9562

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

运行的Ninja例子,build.ninja文件怎么写?

默认的构建文件为当前目录下的 build.ninja 文件,类似于Linux中的Makefile文件。将这个目录加入到Linux也就是msys2的环境变量中,如果你曾经添加过,则就不要重复添加了。新建一个mian.c文件,写上hello world输出。的 /mingw64/bin/ 目录下。进入到本仓库的ninja演示目录。4.鸿蒙开发系统底层方向。1.项目开发必备面试题。5.鸿蒙音视频开发方向。6.鸿蒙车载开发方向。7.鸿蒙南向开发方向。

m0_71263309的博客 1240

**ERROR: Ninja build tool not found.

| if which ninja-build ;\| then \| ln -s `which ninja-build` bin/ninja ;\| else \| echo "***ERROR: Ninja build tool not found." 1>&2 ;\| exit 1;\| fi;\| fi| ***ERROR: Ninja...

403

ninja: error: build.ninja:1180: multiple outputs aren‘t (yet?) supported

使用ninja构建项目,报错,如题,解决方法ninja版本过低,在ninja高于1.10.1的版本中已经修复了此bug,执行sudo dnf remove ninja-build删除已安装的低版本的ninja,然后安装更高版本的ninja,至于如何安装,可以通过编译ninja源码来安装,我这里是发现在安装Qt的时候已经顺便安装了ninja,因此将Qt安装路径下的Tools/Ninja下的ninja拷贝到/usr/bin中,又执行指令ln -s ninja ninja-build建立了软链接,然后就可以正常使

GRAGXU的专栏 185

7 BUILD.gn文件怎么写,Gn + Ninja编译一个Hello world程序的例子Demo

cd examples/simple_build/ 下载源码后进入其中的子目录。这是一个简单的BUILD.gn配置文件。这是Gn官方的例子,在Gn的源码里面。ls 先看看里面的文件。

qq582880551的博客 2198

终极Ninja构建指南:rule、build、command核心语法深度解析

Ninja是一款专注于速度的构建系统,通过简洁高效的语法实现快速项目构建。本文将深度解析Ninja构建文件中的rule、build和command核心语法,帮助开发者掌握这一强大工具的使用方法。 ## 🚀 Ninja构建基础:核心语法概览 Ninja构建文件采用简洁的声明式语法,主要由规则(rule)和构建语句(build)构成。规则定义了如何生成文件,构建语句则指定了具体的文件依赖关系和生

gitblog_00098的博客 386

编译出错 ninja: build stopped: subcommand failed Android

解决方法 错误:ninja: build stopped: subcommand failed. 办法一:按照提示:ulimit -c unlimited 该命令的详细解释参考:https://www.cnblogs.com/qq78292959/archive/2012/05/08/2490443.html 命令解释: ulimint -a 用来显示当前的各种用户进程限制 Linux对于每个用...

萨达哈鲁的博客 4万+
上一篇: chromium之gyp构建系统
下一篇: chromium使用ninja和VS2010集成开发环境编译比较
hellochenlian
博客等级 码龄17年 629粉丝 295原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值