版权声明:原创文章,欢迎转载,但请注明出处,谢谢。https://blog.csdn.net/qiuguolu1108/article/details/103842556

如果你不想编译gn、ninja,想直接使用gn、ninja的二进制程序,可以直接到博客的最后,通过链接直接下载,省去自己编译。分享的链接中有测试用例,可以直接测试gn、ninja是否可用。

文章目录

  • ninja的安装
    • 一、安装依赖
    • 二、下载ninja
    • 三、编译ninja
    • 四、安装ninja
  • gn的安装
    • 一、先安装clang
    • 二、下载gn
    • 三、编译 gn
    • 四、安装gn
  • gn和ninja的二进制程序
    • 一、二进制的gn和ninja
    • 二、测试用例

gn的安装需要使用ninja,所以首先安装ninja。

ninja的安装需要依赖re2c,gn的安装需要使用clang编译器,并且gn中使用了C++17,在Ubuntu16安装的clang-6.0是不支持C++17的,为了方便安装转战到Ubuntu18。

每次最头疼的都是搭建环境,特别浪费时间。目标是学习gn和ninja,所以怎么方便怎么来。在Ubuntu18搭建环境要比Ubuntu16方便很多,所以选用Ubuntu18。

ninja的安装

一、安装依赖

在安装ninja之前,需要安装其依赖re2c

root@ubuntu:~# apt-get install re2c
root@ubuntu:~# re2c --version
re2c 1.0.1

我安装的是 1.0.1 版本

二、下载ninja

在github中下载ninja,ninja github地址https://github.com/ninja-build/ninja

git clone https://github.com/ninja-build/ninja.git

三、编译ninja

进入刚才下载的ninja目录中,执行编译脚本。

./configure.py --bootstrap   #在ninja目录中执行

四、安装ninja

编译结束后,会在ninja目录中生成ninja的可执行程序ninja。可以直接将ninja程序拷贝到/usr/bin中,方便又省事。

cp ./ninja  /usr/bin  #在ninja目录中执行

现在就可以在任意位置使用ninja了。

效果如下:

root@ubuntu:~# ninja --version
1.9.0.git

gn的安装

下载最新版的gn貌似需要翻墙,直接在github中找了一个,虽然不是最新版的,但可以用。

gn的官方源:https://chromium.googlesource.com/chromium/src/tools/gn

我自己使用的github链接:https://github.com/timniederhausen/gn

一、先安装clang

gn的编译需要使用clang编译器,并且gn使用了C++17的语法,所以需要使用较高版本的clang。

我自己安装的是clang 7.0,是可以使用的。

sudo apt-get install clang-7

安装clang以后需要做一点修改,用上述方法安装的clang,直接在命令行中输入clang是无法使用的,在/usr/bin目录下看到是clang-7、clang++-7、clang-cpp-7。但在编译gn的时候,需要使用clang++命令,所以给这个三个可执行程序做一个软连接,修改一下它们的名字。

进入/usr/bin/目录,修改如下:

ln -s clang-7 clang
ln -s clang++-7 clang++
ln -s clang-cpp-7 clang-cpp

在命令行中输入clang --version,显示如下内容,说明clang安装成功。

root@ubuntu:~# clang++ --version
clang version 7.0.0-3~ubuntu0.18.04.1 (tags/RELEASE_700/final)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin

二、下载gn

git clone https://github.com/timniederhausen/gn.git

三、编译 gn

进入刚才下载的gn目录中,先执行gn的配置脚本。

./build/gen.py

然后在gn目录中执行:

ninja -C out

编译结束后,gn程序就在gn/out目录中。

四、安装gn

gn/out目录下的gn复制到/usr/bin目录就可以在任意位置使用gn了。

cp ./out/gn /usr/bin     #在gn目录下执行

效果如下:

root@ubuntu:~# gn --version
1641 (0a06cb92a)

gn和ninja的二进制程序

一、二进制的gn和ninja

如果你嫌麻烦,可以直接使用我编译好的可执行文件。这两个二进制文件,我测试了一下,可以在Ubuntu-16.04和Ubuntu-18.04上运行。
链接:https://pan.baidu.com/s/1_l8JMfuhLJgD7RKs-IDOnQ 提取码:1e0r
如果链接失效了,可以提醒我,我会及时更新链接。
将gn、ninja下载后,直接放在/usr/bin目录下,这样在任意位置可以直接使用这个两个程序了。

二、测试用例

在分享的文件夹中,我提供了一份测试用例,将上述两个可执行文件放到/usr/bin目录后,进入gn-demo目录。

  • 给gn和ninja添加执行权限
    下载拷贝过去后,可能gn和ninja没有了执行权限,如果出现下面情况,可以给其添加执行权限。

    root@learner:~/gn-demo# gn gen ./out
    -bash: /usr/bin/gn: Permission denied
    

使用以下命令添加执行权限:

root@learner:~/gn-demo# chmod +x /usr/bin/gn
root@learner:~/gn-demo# chmod +x /usr/bin/ninja
  • 先使用gn生成工程。
root@learner:~/gn-demo# gn gen ./out                #使用gn生成ninja工程
Done. Made 2 targets from 4 files in 4ms
  • 再使用ninja生成可执行文件。
root@learner:~/gn-demo# ninja -C ./out             #使用ninja生成可执行文件
ninja: Entering directory `./out'
[3/3] STAMP obj/default.stamp
  • 现在可执行文件就在./out目录中。
root@learner:~/gn-demo# cd out/
root@learner:~/gn-demo/out# ls
args.gn  build.ninja  build.ninja.d  hello  obj  toolchain.ninja
  • 执行可执行文件hello
root@learner:~/gn-demo/out# ./hello               #运行可执行程序hello
hello world

gn、ninja的安装-Ubuntu18.04相关推荐

  1. 虚拟机ubuntu启动代码界面_Windows10下使用虚拟机安装Ubuntu18.04

    Windows10下使用虚拟机安装Ubuntu18.04步骤: 我想把这篇文章献给你. (封面是Ubuntu的官方壁纸) 首先我们要有vmware和操作系统的iso包:咱们可以在互联网上找到.操作系统 ...

  2. Win10(UEFI启动)安装Ubuntu18.04双系统

    <Win10(UEFI启动)安装Ubuntu18.04双系统> 注意:一定要按上述连接文章中一道的设置EFI系统分区,且系统启动引导器设置位该EFI系统分区,否则电脑启动时,不会出现选择w ...

  3. cudnn下载_记录新电脑安装Ubuntu18.04,CUDA, cuDNN全过程

    不得不说,装机一时爽,一直装机一直爽.现在对于bug还有些期待了,要是安装的过程中不出现bug反而还在担心.话不多说,直接进入主题. 安装Ubuntu18.04: 下载系统镜像: https://ub ...

  4. win10 mbr下装linux,(MBR模式)Win10下安装Ubuntu18.04双系统

    1.制作U盘启动工具. 2.删除一个磁盘,不格式化(我删除了200G的磁盘). 3.启动电脑,按F12进入启动选项,选择U盘启动,安装Ubuntu18.04系统. 4.进入启动界面,选择try ubu ...

  5. 虚拟机安装ubuntu18.04及其srs服务器的搭建

    第一次写博客,有些地方可能不太完善. 1.安装VMware,我用的是VMware12. 2.下载Ubuntu镜像(自Ubuntu 17.10开始桌面版本不再提供32位安装镜像,Ubuntu Serve ...

  6. Win10安装Ubuntu18.04双系统,图文详解,全网最详细教程

    博主经历过多次双系统的安装与卸载,所以这次安装就记录下全过程,能让后面的同学少走弯路.本教程对笔记本电脑单硬盘和双硬盘通用. 安装目录 一.查看电脑信息 1.BIOS模式 2.查看硬盘数 二.制作系统 ...

  7. w10安装ubuntu_Windows10安装ubuntu18.04双系统教程

    写在前面:本教程为windows10安装ubuntu18.04(64位)双系统教程,是我多次安装双系统的经验总结,安装方法同样适用于ubuntu16.04(64位).为了直观和易于理解,我会尽量图文并 ...

  8. 卸载安装Ubuntu18.04双系统、ROS+装机

    第一部分:卸载和重新安装Ubuntu 1.安装前先将ubuntu里的重要文件打包上传至网盘备份 2.进入windows系统 2.1 抹掉ubuntu系统 找到ubuntu系统使用的磁盘分区(比如我这里 ...

  9. MECHREVO X8ti 安装Ubuntu18.04,NVIDIA GTX 1060驱动、CUDA10

    用一个系列来介绍使用最新版Ubuntu18.个人美化以及CUDA10在Ubuntu18下的配置 MECHREVO X8ti 安装Ubuntu18.04,NVIDIA GTX 1060驱动.CUDA10 ...

最新文章

  1. Win8.1下Node.js连接oracle
  2. php检测目录,php检测文件目录大小类
  3. 2020年5月数据库流行度排行:疫情下开源数据库逆势增长,新基建下国产数据库迎机遇...
  4. java跨站点脚本编制_跨站点请求伪造 跨站点脚本编制 通过框架钓鱼漏洞 | 学步园...
  5. python学习笔记(二)之列表
  6. PostgreSQL Json字段作为查询条件的解决方案
  7. BZOJ 1062 糖果雨
  8. XMPP即时通讯基础知识
  9. Linux下的围棋软件,在Linux下和电脑下围棋
  10. 微信指纹支付提示java6_苹果6微信指纹支付每次提示请验证已有的指纹用于支付,怎样才能支付?...
  11. 7 款基于 HTML5 Canvas 的超炫 3D 动画效果
  12. 三维图像处理_三维全景技术是怎样的黑科技
  13. Xftp的介绍及下载安装教程
  14. [xueqi]吃着榨菜,轻松搞下漏洞百出的湾湾站
  15. Android 禁用电源键音量键与模拟
  16. winform实现pictureBox显示成圆形形状,并实现pictureBox透明
  17. Python psutil cpu_percent调用说明
  18. java 进制转换工具_进制转换工具(JAVA)
  19. 深圳python多少钱信息_用Python分析深圳在售二手房数据,看看买房需要多少预算...
  20. 03_根据配置文件创建SqlSessionFactory(Configuration的创建过程)

热门文章

  1. Linux下如何安装MySQL 5.0
  2. npm start 报错解决方案
  3. 开发一个基于 Android系统车载智能APP
  4. iOS网络编程-MBProgressHUD等待指示器
  5. 微信小程序云开发上传图片和删除图片
  6. badboy录制网站出现css样式混乱,网页的图标点击没反应
  7. Flutter Dio网络请求:DioError [DioErrorType.RESPONSE]: Http status error [400]或者[500]
  8. msg文件转成html文件,如何将MSG格式的文件转换为PDF格式文件?
  9. wps将批量数字转换成条形码_excel表格怎么把数据转换条形码-WPS表格中怎么把数字还原成条形码,本来是条形码的。...
  10. 【BZOJ4372】烁烁的游戏(点分树)