主要過程:
下載編譯器源碼 -> 配置開發(fā)環(huán)境 -> 測試編譯用例
系統(tǒng)要求:Ubuntu-16.04抒钱。由于需要安裝clang編譯環(huán)境,而方舟源碼中使用了16.04版本中的類型颜凯,所以我在一開始使用了Ubuntu 18.04版本+18.04的clang報錯谋币。
1、下載方舟編譯器源碼
git clone https://code.opensource.huaweicloud.com/HarmonyOS/OpenArkCompiler.git
2装获、下載對應(yīng)版本的clang編譯器瑞信。當時官網(wǎng)推薦使用8.0版本,我是用了9.0也沒問題穴豫。
3凡简、修改編譯器配置文件(檢查下與你對應(yīng)的路徑是否正確)
// openarkcompiler/build/config/BUILDCONFIG.gn
GN_C_COMPILER = "${MAPLE_ROOT}/tools/clang_llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04/bin/clang"
GN_CXX_COMPILER = "${MAPLE_ROOT}/tools/clang_llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04/bin/clang++"
GN_AR_COMPILER = "${MAPLE_ROOT}/tools/clang_llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04/bin/llvm-ar"
注:${MAPLE_ROOT}是方舟編譯器的路徑,不需要自己去設(shè)置精肃,后續(xù)編譯的時候回自動添加(envsetup.sh)
4秤涩、安裝Ninja和GN。當時我使用的版本是ninja1.9.0司抱,跟官網(wǎng)推薦一致筐眷。
檢查編譯器配置文件路徑是否正確
// openarkcompiler/build/config/BUILDCONFIG.gn
GN := ${MAPLE_ROOT}/tools/gn/gn
NINJA := ${MAPLE_ROOT}/tools/ninja_1.9.0/ninja
5、編譯測試用例
回到方舟編譯器根目錄
// 配置編譯器環(huán)境 其中MAPLE_ROOT就是在這配置的 如果編譯器目錄改變 需要重新執(zhí)行更新
source build/envsetup.sh
// 會生成編譯器的release版本 如需debug版本執(zhí)行 `make BUILD_TYPE=DEBUG`
make
編譯過程中我遇到了一個錯誤找不到j(luò)avac命令习柠,安裝jdk即可匀谣,我用了jdk8正常照棋。
下面是編譯HelloWorld的一個準備工作,我偷懶截圖了武翎,沒有需要說明的烈炭。
正式編譯:
// 文件夾下會有Makefile文件
cd samples/helloworld/; make
執(zhí)行完成后ls看是否會有 HelloWorld.jar,如果有宝恶,恭喜你符隙!