同步操作将从 方舟编译器/OpenArkCompiler 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
2 GHz 双核处理器或者更高等级CPU
2 GB 系统内存及以上
200GB 可用磁盘空间
您需要安装一个64位版本的Ubuntu(推荐Ubuntu 16.04)
sudo apt-get -y install openjdk-8-jdk git-core build-essential zlib1g-dev libc6-dev-i386 g++-multilib gcc-multilib linux-libc-dev:i386
sudo apt-get -y install gcc-5-aarch64-linux-gnu g++-5-aarch64-linux-gnu
cd tools
./setup_tools.sh
下载clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04 (具体版本请根据系统版本确定)
LLVM下载地址:http://releases.llvm.org/download.html#8.0.0
解压并放置到openarkcompiler/tools
目录
openarkcompiler/build/config.gni
文件,将CLANG_PATH
变量配置为clang编译器所在路径,例如:CLANG_PATH = "${MAPLE_ROOT}/tools/clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04"
openarkcompiler/build/core/maple_variables.mk
文件,将CLANG_PATH
配置为clang编译器所在路径,例如:CLANG_PATH := ${MAPLE_ROOT}/tools/clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04
其中${MAPLE_ROOT}为openarkcompiler源码根目录。
下载Ninja(v1.10.0)及GN(Linux Version)
Ninja下载地址:https://github.com/ninja-build/ninja/releases
GN下载地址:https://gitee.com/xlnb/gn_binary
将GN和Ninja可执行程序放置到openarkcompiler/tools
目录,然后修改这两个文件为可执行:
cd openarkcompiler/tools
chmod 775 gn
chmod 775 ninja
打开openarkcompiler/Makefile
文件,将GN和NINJA两个变量配置为GN和Ninja可执行程序所在路径。例如:
GN := ${MAPLE_ROOT}/tools/gn/gn
NINJA := ${MAPLE_ROOT}/tools/ninja/ninja
下载gcc-linaro-7.5.0-2019.12-i686_aarch64-linux-gnu
gcc-linaro-7.5.0下载地址:https://releases.linaro.org/components/toolchain/binaries/latest-7/aarch64-linux-gnu/
解压并放置到openarkcompiler/tools
目录,并将文件夹更名为gcc-linaro-7.5.0
。
openarkcompiler/build/config.gni
文件,将GCC_LINARO_PATH
变量配置为gcc-linaro-7.5.0所在路径,例如:GCC_LINARO_PATH = "${MAPLE_ROOT}/tools/gcc-linaro-7.5.0"
openarkcompiler/build/core/maple_variables.mk
文件,将GCC_LINARO_PATH
配置为gcc-linaro-7.5.0所在路径,例如:GCC_LINARO_PATH := ${MAPLE_ROOT}/tools/gcc-linaro-7.5.0
下载android-ndk-r21b-linux-x86_64.zip
android-ndk-r21下载地址:https://developer.android.google.cn/ndk/downloads/
解压并放置到openarkcompiler/tools目录,并将文件夹更名为android-ndk-r21
。
openarkcompiler/build/config.gni
文件,将NDK_PATH
变量配置为android-ndk-r21所在路径,例如:NDK_PATH = "${MAPLE_ROOT}/tools/android-ndk-r21"
openarkcompiler/build/core/maple_variables.mk
文件,将NDK_PATH
配置为android-ndk-r21所在路径,例如:NDK_PATH := ${MAPLE_ROOT}/tools/android-ndk-r21
当前编译方舟编译器Sample应用需要使用到Java基础库,我们通过AOSP来获取,请使用Android-10.0.0_r35版本,暂不支持Android11版本。
AOSP下载地址:https://source.android.com/source/downloading/
下载AOSP并编译完成。
android/
,并链接到AOSP的根目录;openarkcompiler/android/out/target/product/generic_arm64/obj/JAVA_LIBRARIES/core-libart_intermediates/javalib.jar
拷贝到openarkcompiler/libjava-core/libart.jar
openarkcompiler/android/out/target/product/generic_arm64/obj/JAVA_LIBRARIES/core-oj_intermediates/javalib.jar
拷贝到openarkcompiler/libjava-core/oj.jar
openarkcompiler/android/prebuilts/gcc
;openarkcompiler/android/prebuilts/clang/host/linux-x86/clang-r353983c
;openarkcompiler/build/config.gni
和openarkcompiler/build/core/maple_variables.mk
中ANDROID_GCC_PATH
和ANDROID_CLANG_PATH
两个变量,配置为上述gcc和clang-r353982c的所在路径,例如:config.gni
ANDROID_GCC_PATH = "${MAPLE_ROOT}/tools/gcc"
ANDROID_CLANG_PATH = "${MAPLE_ROOT}/tools/clang-r353983c"
maple_variables.mk
ANDROID_GCC_PATH := ${MAPLE_ROOT}/tools/gcc
ANDROID_GLANG_PATH := ${MAPLE_ROOT}/tools/clang-r353983c
当前用例编译需要icu动态库支持,请使用icu56.1版本。
icu下载地址:http://site.icu-project.org/home
下载56.1版本的icu4c并编译完成,生成libicuuc.so
和libicudata.so
,将两者放置到openarkcompiler/third_party/icu/lib/aarch64-linux-gnu
路径下,并重命名为libicuuc.so.56
和libicudata.so.56
。
当前用例编译需要libz.so支持,请使用1.2.8版本。
libz下载地址:https://zlib.net
下载1.2.8版本的libz.so,将其放置到openarkcompiler/third_party/libdex/prebuilts/aarch64-linux-gnu/
路径下,并重命名为libz.so.1.2.8
。
当前用例编译需要d8.jar支持,请使用d8-1.5.13版本。
r8社区地址:https://r8.googlesource.com/r8
已经编译后的二进制:https://gitee.com/xlnb/r8-d81513/tree/master/d8/lib/d8.jar
将d8.jar放置到openarkcompiler/third_party/d8/lib/
目录
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。