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# 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目录下执行
来源:CSDN
作者:邱国禄
链接:https://blog.csdn.net/qiuguolu1108/article/details/103842556