Android使adb作为host运行在arm64平台
交叉编译adb-tools
# souce build/envsetup.sh
# lunch user-debug
一、交叉编译openssl库
1.下载openssl
# git clone https://github.com/openssl/openssl.git
2.编译
# mkdir output
# ./config no-asm -shared --prefix=$(pwd)/output
说明:no-asm 在交叉编译过程中不使用汇编代码代码加速编译过程。
-shared 生成动态链接库。
--prefix 指定安装编译生成文件的路径,如不指定则默认为当前目录。
<1>.将根目录下Makefile第74行 “CROSS_COMPILE=” 改为: “CROSS_COMPILE=aarch64-linux-android-”
<2>.找到Makefile中有 “-m64” 的地方,全删了(共2处)。
//链接交叉编译器.so系统库位置
prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/lib/gcc/aarch64-linux-android/4.9
//链接交叉编译器.h系统头文件位置
prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/lib/gcc/aarch64-linux-android/4.9/include
<3>.如果编译报错没有.h文件报错解决:
# cp prebuilts/ndk/current/platforms/android-21/arch-arm64/usr/include/* prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/lib/gcc/aarch64-linux-android/4.9/include
<4>.如果编译报错没有.so文件报错解决:
# cp prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/lib/gcc/aarch64-linux-android/4.9 prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/lib/gcc/aarch64-linux-android/4.9/
# make -j16
<5>.编译完成后生成:libcrypto.so、libssl.so,拷贝到交叉编译器.so系统库位置
# cp libcrypto.so libssl.so prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/lib/gcc/aarch64-linux-android/4.9
<6>.头文件拷贝到交叉编译器.h系统头文件位置
# cp -rf openssl/include prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/lib/gcc/aarch64-linux-android/4.9/include
二、交叉编译zlib-1.2.8库
1.下载zlib-1.2.8
# git clone https://github.com/fmrico/zlib-1.2.8.git
2.编译
# mkdir output
# ./configure —-prefix=$(pwd)/output
<1>.修改Makefile
TOOLSCHAIN=aarch64-linux-android-
将CC=gcc 改为: CC=$(TOOLSCHAIN)gcc
<2>.将Makefile出现gcc的地方全部改为:$(CC)
将gcc全部改为:$(CC)
<3>.将
AR=ar
RANLIB=ranlib
改为:
AR=$(TOOLSCHAIN)ar