gn、ninja的安装-Ubuntu18.04
版权声明:原创文章,欢迎转载,但请注明出处,谢谢。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相关推荐
- 虚拟机ubuntu启动代码界面_Windows10下使用虚拟机安装Ubuntu18.04
Windows10下使用虚拟机安装Ubuntu18.04步骤: 我想把这篇文章献给你. (封面是Ubuntu的官方壁纸) 首先我们要有vmware和操作系统的iso包:咱们可以在互联网上找到.操作系统 ...
- Win10(UEFI启动)安装Ubuntu18.04双系统
<Win10(UEFI启动)安装Ubuntu18.04双系统> 注意:一定要按上述连接文章中一道的设置EFI系统分区,且系统启动引导器设置位该EFI系统分区,否则电脑启动时,不会出现选择w ...
- cudnn下载_记录新电脑安装Ubuntu18.04,CUDA, cuDNN全过程
不得不说,装机一时爽,一直装机一直爽.现在对于bug还有些期待了,要是安装的过程中不出现bug反而还在担心.话不多说,直接进入主题. 安装Ubuntu18.04: 下载系统镜像: https://ub ...
- win10 mbr下装linux,(MBR模式)Win10下安装Ubuntu18.04双系统
1.制作U盘启动工具. 2.删除一个磁盘,不格式化(我删除了200G的磁盘). 3.启动电脑,按F12进入启动选项,选择U盘启动,安装Ubuntu18.04系统. 4.进入启动界面,选择try ubu ...
- 虚拟机安装ubuntu18.04及其srs服务器的搭建
第一次写博客,有些地方可能不太完善. 1.安装VMware,我用的是VMware12. 2.下载Ubuntu镜像(自Ubuntu 17.10开始桌面版本不再提供32位安装镜像,Ubuntu Serve ...
- Win10安装Ubuntu18.04双系统,图文详解,全网最详细教程
博主经历过多次双系统的安装与卸载,所以这次安装就记录下全过程,能让后面的同学少走弯路.本教程对笔记本电脑单硬盘和双硬盘通用. 安装目录 一.查看电脑信息 1.BIOS模式 2.查看硬盘数 二.制作系统 ...
- w10安装ubuntu_Windows10安装ubuntu18.04双系统教程
写在前面:本教程为windows10安装ubuntu18.04(64位)双系统教程,是我多次安装双系统的经验总结,安装方法同样适用于ubuntu16.04(64位).为了直观和易于理解,我会尽量图文并 ...
- 卸载安装Ubuntu18.04双系统、ROS+装机
第一部分:卸载和重新安装Ubuntu 1.安装前先将ubuntu里的重要文件打包上传至网盘备份 2.进入windows系统 2.1 抹掉ubuntu系统 找到ubuntu系统使用的磁盘分区(比如我这里 ...
- MECHREVO X8ti 安装Ubuntu18.04,NVIDIA GTX 1060驱动、CUDA10
用一个系列来介绍使用最新版Ubuntu18.个人美化以及CUDA10在Ubuntu18下的配置 MECHREVO X8ti 安装Ubuntu18.04,NVIDIA GTX 1060驱动.CUDA10 ...
最新文章
- Win8.1下Node.js连接oracle
- php检测目录,php检测文件目录大小类
- 2020年5月数据库流行度排行:疫情下开源数据库逆势增长,新基建下国产数据库迎机遇...
- java跨站点脚本编制_跨站点请求伪造 跨站点脚本编制 通过框架钓鱼漏洞 | 学步园...
- python学习笔记(二)之列表
- PostgreSQL Json字段作为查询条件的解决方案
- BZOJ 1062 糖果雨
- XMPP即时通讯基础知识
- Linux下的围棋软件,在Linux下和电脑下围棋
- 微信指纹支付提示java6_苹果6微信指纹支付每次提示请验证已有的指纹用于支付,怎样才能支付?...
- 7 款基于 HTML5 Canvas 的超炫 3D 动画效果
- 三维图像处理_三维全景技术是怎样的黑科技
- Xftp的介绍及下载安装教程
- [xueqi]吃着榨菜,轻松搞下漏洞百出的湾湾站
- Android 禁用电源键音量键与模拟
- winform实现pictureBox显示成圆形形状,并实现pictureBox透明
- Python psutil cpu_percent调用说明
- java 进制转换工具_进制转换工具(JAVA)
- 深圳python多少钱信息_用Python分析深圳在售二手房数据,看看买房需要多少预算...
- 03_根据配置文件创建SqlSessionFactory(Configuration的创建过程)
热门文章
- Linux下如何安装MySQL 5.0
- npm start 报错解决方案
- 开发一个基于 Android系统车载智能APP
- iOS网络编程-MBProgressHUD等待指示器
- 微信小程序云开发上传图片和删除图片
- badboy录制网站出现css样式混乱,网页的图标点击没反应
- Flutter Dio网络请求:DioError [DioErrorType.RESPONSE]: Http status error [400]或者[500]
- msg文件转成html文件,如何将MSG格式的文件转换为PDF格式文件?
- wps将批量数字转换成条形码_excel表格怎么把数据转换条形码-WPS表格中怎么把数字还原成条形码,本来是条形码的。...
- 【BZOJ4372】烁烁的游戏(点分树)