方舟編譯器是華為推出的首個(gè)完全自主研發(fā)的編譯器平臺(tái),于2019年8月31日正式上線。方舟編譯器已成為碼云最快達(dá)成5000 Star的開源項(xiàng)目。 [1]
華為方舟編譯器是華為公司專門為軟件廠商研發(fā)的統(tǒng)一編程平臺(tái),包含編譯器、工具鏈、運(yùn)行時(shí)等關(guān)鍵部件。該編譯器支持多種編程語言、多種芯片平臺(tái)的聯(lián)合編譯與運(yùn)行,能夠有效解決安卓程序“邊解釋邊執(zhí)行”的低效率問題
方舟編譯器開源版介紹
方舟編譯器是為支持多種編程語言、多種芯片平臺(tái)的聯(lián)合編譯、運(yùn)行而設(shè)計(jì)的統(tǒng)一編程平臺(tái),包含編譯器、工具鏈、運(yùn)行時(shí)等關(guān)鍵部件。 方舟編譯器還在持續(xù)演進(jìn)中,陸續(xù)將上述能力實(shí)現(xiàn)和開源。
華為方舟編譯器優(yōu)勢(shì)
多語言聯(lián)合
將同一應(yīng)用中的不同語言代碼聯(lián)合編譯、聯(lián)合優(yōu)化,消除語言間的性能“鴻溝”,降低開發(fā)者的優(yōu)化成本
多平臺(tái)支持
支持面向多樣化的終端設(shè)備平臺(tái)進(jìn)行編譯和運(yùn)行,根據(jù)設(shè)備特征提供便捷的開發(fā)與部署策略,提高開發(fā)效率
輕量運(yùn)行時(shí)
通過編譯器的語言實(shí)現(xiàn)能力和優(yōu)化能力增強(qiáng),應(yīng)用運(yùn)行時(shí)的開銷更小
華為方舟編譯器安裝前準(zhǔn)備:
1) 環(huán)境要求
方舟編譯器支持如下64位操作系統(tǒng)。
SUSE12sp4及以上版本。
ubuntu16.04及以上版本。
其他glibc版本在2.22及以上的Linux發(fā)行版。
2) 獲取軟件包
安裝方舟編譯器需要獲取如表2-1所示的開源軟件包。
1) 環(huán)境要求
方舟編譯器支持如下64位操作系統(tǒng)。
SUSE12sp4及以上版本。
ubuntu16.04及以上版本。
其他glibc版本在2.22及以上的Linux發(fā)行版。
2) 獲取軟件包
安裝方舟編譯器需要獲取如下開源軟件包。(復(fù)制到搜索欄內(nèi)便可以下載)
GCC 7.3.0
編譯器源碼包
https://ftp.gnu.org/gnu/gcc/gcc-7.3.0/gcc-7.3.0.tar.gz
Binutils 2.31.1
匯編器、鏈接器等二進(jìn)制工具集源碼包
https://ftp.gnu.org/gnu/binutils/binutils-2.31.1.tar.gz
Glibc 2.29
GNU libc庫(kù)源碼包
https://git.linaro.org/toolchain/glibc.git/snapshot/glibc-2.29.tar.gz
Mpc 1.1.0
復(fù)數(shù)運(yùn)算庫(kù)
https://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz
GNU MPFR 4.0.2
多精度浮點(diǎn)計(jì)算庫(kù)
https://www.mpfr.org/mpfr-current/mpfr-4.0.2.tar.gz
isl 0.21
集和線性約束范圍內(nèi)整數(shù)點(diǎn)關(guān)系的操作庫(kù)
http://isl.gforge.inria.fr/isl-0.21.tar.gz
2.安裝HCC編譯器
1) 操作步驟
您可以使用HCC tar包將HCC安裝到當(dāng)前用戶權(quán)限下的任何位置,而不會(huì)影響其他編譯器的使用。
a)介紹操作入口,例如用XX帳號(hào)登錄XX環(huán)境。
b) 登陸HCC下載地址下載壓縮包
hcc_arm64le.tar.gz
c) 將tar包拷貝至您想要安裝的目錄。
命令腳本如下所示。
cp hcc_arm64le.tar.gz /path/to/your/dir
d) 解壓縮軟件包。
命令腳本如下所示。
tar zxvf hcc_arm64le.tar.gz
e) 設(shè)置環(huán)境變量。
設(shè)置環(huán)境變量命令腳本如下所示。
export PATH=/path/to/your/dir/hcc_arm64le/bin:$PATH
HCC編譯器提供的編譯工具在=/path/to/your/dir/hcc_arm64le/bin目錄下。
2) 安裝后檢查
HCC編譯器安裝完成后,可以執(zhí)行aarch64-linux-gnu-gcc -v命令查詢HCC版本。