Ubuntu18.04 安裝方舟編譯器及測試筆記
一、將方舟編譯器的源碼下載保存到需要安裝的目錄并解壓文件。
-:https://code.opensource.huaweicloud.com/HarmonyOS/OpenArkCompiler/home
二、環境配置
1)、硬件推薦配置
2 GHz 雙核處理器或者更高等級CPU
2 GB 系統內存及以上
200GB 可用磁盤空間
2)、開發環境推薦
您需要安裝一個64位版本的ubuntu18.04
sudo?apt-get?-y?install?openjdk-8-jdk?git-core?gnupg?flex?bison?gperf?build-essential?zip?curl?zlib1g-dev?libc6-dev-i386?lib32ncurses5-dev?x11proto-core-dev?libx11-dev?lib32z-dev?ccache?libgl1-mesa-dev?libxml2-utils?xsltproc?unzip?lib32z1-dev?qemu?g++-multilib?gcc-multilib?libglib2.0-dev?libpixman-1-dev?linux-libc-dev:i386 sudo?apt-get?-y?install?gcc-5-aarch64-linux-gnu?g++-5-aarch64-linux-gnu
3)、安裝Clang編譯器并完成配置(用于編譯方舟編譯器代碼)
1、下載clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-18.04
LLVM-:http://releases.llvm.org/download.html#8.0.0
2、放置到openarkcompiler/tools目錄,打開openarkcompiler/build/config/BUILDCONFIG.gn文件,將GN_C_COMPILER、GN_CXX_COMPILER和GN_AR_COMPILER三個變量配置為Clang編譯器所在路徑,例如:
GN_C_COMPILER?=?"${MAPLE_ROOT}/tools/clang_llvm-8.0.0-x86_64-linux-gnu-ubuntu-18.04/bin/clang" GN_CXX_COMPILER?=?"${MAPLE_ROOT}/tools/clang_llvm-8.0.0-x86_64-linux-gnu-ubuntu-18.04/bin/clang++" GN_AR_COMPILER?=?"${MAPLE_ROOT}/tools/clang_llvm-8.0.0-x86_64-linux-gnu-ubuntu-18.04/bin/llvm-ar"
其中${MAPLE_ROOT}為方舟編譯器源碼所放的根目錄
4)、安裝Ninja、GN并完成配置
1、下載Ninja(v1.9.0)及GN(Linux Version)?Ninja-:https://github.com/ninja-build/ninja/releases
*注意此處需要下載兩個文件包:
GN-:https://archive.softwareheritage.org/browse/content/sha1_git:2dc0d5b26caef44f467de8120b26f8aad8b878be/raw/?filename=gn
2、將資源文件解壓放置到openarkcompiler/tools目錄下,修改解壓后的文件夾名稱問:ninja_1.9.0
將GN可執行程序放置到openarkcompiler/tools/gn/目錄;
將Ninja可執行程序放置到openarkcompiler/tools/ninja_1.9.0/目錄;
打開openarkcompiler/Makefile文件,將GN和NINJA兩個變量配置為GN和Ninja可執行程序所在路徑。例如:
GN?:=?${MAPLE_ROOT}/tools/gn/gn NINJA?:=?${MAPLE_ROOT}/tools/ninja_1.9.0/ninja
*注意修改gn和ninja的可執行權限
5)、源碼編譯
在openarkcompiler目錄下執行以下命令,編譯出OpenArkCompiler,默認輸出路徑 openarkcompiler/out/bin。
source?build/envsetup.sh make
命令說明: source?build/envsetup.sh?初始化環境,將OpenArkCompiler工具鏈路徑openarkcompiler/src/bin設置到環境變量中 make?編譯OpenArkCompiler的Release版本 make?BUILD_TYPE=DEBUG?編譯OpenArkCompiler的Debug版本
*注:執行命令source build/envsetup.sh之前請查看envsetup.sh是否有可執行權限,若沒有則需要添加可執行權限。
chmod?+x?build/envsetup.sh
經過以上操作后,系統就編譯好了maple了。
三、開始編譯測試代碼
要編譯成功samples 下的helloworld.java ?還需要做如下修改
1)、修改 build/core/java2jar.mk 為如下代碼(注:修改前請先備份)
$(APP_JAR):?%.jar?:?%.java $(JAVA2JAR)?$(APP_JAR)??$(wildcard?*.java)
也就是將里面的
${MAPLE_ROOT}/libjava-core/java-core.jar
刪除,讓它不依賴于這個輸入文件
2)、修改 build/core/jbc2mpl.mk?為如下代碼(注:修改前請先備份)
$(APP_MPL):?%.mpl?:?%.jar?$(JBC2MPL_BIN) $(JBC2MPL_BIN)?-injar?${MAPLE_ROOT}/libjava-core/java-core.jar?-injar?$(APP_JAR)?-out?$(APP)
用java-core.jar 替換 libjava-core.mplt 也就是$(LIB_MPLT)
3)、?修改out/bin/java2jar 為如下代碼
#!/bin/bash OUTPUT=$1 CORE_ALL_JAR=$2 JAVA_FILE=$2 shift?2 javac?-g?-d?.?${JAVA_FILE} #javac?-g?-d?.?-bootclasspath?${CORE_ALL_JAR}?$@ jar?-cvf?${OUTPUT}?*.class
4)、?修改src/bin/java2jar 為如下代碼
#!/bin/bash OUTPUT=$1 CORE_ALL_JAR=$2 JAVA_FILE=$2 shift?2 javac?-g?-d?.?${JAVA_FILE} #javac?-g?-d?.?-bootclasspath?${CORE_ALL_JAR}?$@ jar?-cvf?${OUTPUT}?*.class
5)、? 最后需要下載我們一直在討論的java-core.jar?庫
-如下:https://gitee.com/mirrors/java-core
在${MAPLE_ROOT}方舟編譯器源碼所放的根目錄下mkdir創建libjava-core目錄,并將下載的java-core.jar?庫放到此目錄下。
6)、進入samples/helloworld目錄下
make 就可以了,沒有報什么錯誤,并且在本目錄下生成了一些必要的文件了。
人工智能 python 軟件開發云 AI
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。