版權聲明:原創文章,歡迎轉載,但請註明出處,謝謝。https://blog.csdn.net/qiuguolu1108/article/details/103842556
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)