華為方舟編譯器編譯工具正式發布
2019 華為全球開發者大會將在 8 月 9 日-11 日在華為松山湖基地召開。本次開發者大會邀請了 1500 位合作伙伴、5000 名全球開發者,將是華為歷來規模最大的一次會議。在這次大會上,華為方舟編譯器也是關注的熱點。
現在根據華為開發者官網最新消息,編譯工具方舟編譯器已經對外發布。據介紹,方舟編譯器是基于 GCC 開發的交叉編譯器套件,它包括了C、C++、Fortran 的前端,也包括了這些語言的庫(如 libstdc++、libgcc 等)。HCC 運行在 X86 linux 架構服務器上,生成的二進制運行在 Aarch64 架構服務器上。
1. 安裝前準備
1) 環境要求
方舟編譯器支持如下 64 位操作系統。
SUSE12sp4 及以上版本。
ubuntu16.04 及以上版本。
其他 glibc 版本在 2.22 及以上的 Linux 發行版。
2) 獲取軟件包
安裝方舟編譯器需要獲取如表2-1 所示的開源軟件包。
表2-1 開源軟件包
軟件包名稱 | 軟件包說明 | 獲取路徑 |
GCC 7.3.0 | 編譯器源碼包 | https://ftp.gnu.org/gnu/gcc/gcc-7.3.0/gcc-7.3.0.tar.gz |
Binutils 2.31.1 | 匯編器、鏈接器等二進制工具集源碼包 | https://ftp.gnu.org/gnu/binutils/binutils-2.31.1.tar.gz |
Glibc 2.29 | GNU libc 庫源碼包 | https://git.linaro.org/toolchain/glibc.git/snapshot/glibc-2.29.tar.gz |
Mpc 1.1.0 | 復數運算庫 | https://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz |
GNU MPFR 4.0.2 | 多精度浮點計算庫 | https://www.mpfr.org/mpfr-current/mpfr-4.0.2.tar.gz |
isl 0.21 | 集和線性約束范圍內整數點關系的操作庫 | http://isl.gforge.inria.fr/isl-0.21.tar.gz |
2. 安裝 HCC 編譯器
1) 操作步驟
您可以使用 HCC tar 包將 HCC 安裝到當前用戶權限下的任何位置,而不會影響其他編譯器的使用。
a) 介紹操作入口,例如用 XX 帳號登錄 XX 環境。
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) 設置環境變量。
設置環境變量命令腳本如下所示。
export PATH=/path/to/your/dir/hcc_arm64le/bin:$PATH
HCC 編譯器提供的編譯工具在=/path/to/your/dir/hcc_arm64le/bin 目錄下。
2) 安裝后檢查
HCC 編譯器安裝完成后,可以執行 aarch64-linux-gnu-gcc -v 命令查詢 HCC 版本。
軟件下載
源碼下載:立即下載
據華為官方方面介紹,方舟編譯器是首家完全替代語言虛擬機的靜態編譯器,完全不需要解釋器。兼顧 Java 開發效率和C語言運行效率的編譯器。相比現有的編譯機制:
1. 方舟編譯器是一種靜態的編譯方式,而現有的安卓系統,運行一個應用程序首先啟動虛擬機,然后讀入應用程序代碼,逐條解釋執行。會占用較多的處理資源,影響程序執行的效率。當然,也有包括 AOT 或 JIT 等提前或運行時的編譯技術,把部分程序轉換成機器碼直接在 CPU 上執行。但是,仍舊無法做到 100% 做到擺脫虛擬機的執行,這也是當前安卓陣營不如 IOS 陣營的關鍵。
2. 華為方舟編譯器的靜態編譯方式可將語言里的動態特性直接翻譯成機器碼,手機安裝應用程序后可全速運行程序,徹底消除虛擬機的弊病,帶來效率上的極大提升。
3. 方舟編譯器是在開發環境部署的編譯器,而現有編譯過程,主要發生在手機上,帶來額外的資源消耗。
目前方舟編譯器針對通用 ARM 芯片架構進行編譯優化,未來將通過軟硬件協同設計,將麒麟芯片的能力發揮到極致。同時方舟編譯器支持 Java 標準用法,三方應用可直接進行編譯,不需要修改代碼。但如果希望獲得更加好的性能或內存方面的提升,則可以通過調整代碼結構,與方舟編譯器配合優化來實現。