android 如何实现交叉编译

有两种交叉编译的方式:

在网址下载android-ndk-r27c NDK版本,我们使用API34,为了编译ARM64位

复制代码
export NDK_PATH=/work/rkXXX//ndk/android-ndk-r27c
export TOOLCHAIN=$NDK_PATH/toolchains/llvm/prebuilt/linux-x86_64
export TARGET=aarch64-linux-android
export API=34  # 选择你要支持的最低 API 版本
export CC=$TOOLCHAIN/bin/${TARGET}${API}-clang
export CXX=$TOOLCHAIN/bin/${TARGET}${API}-clang++
export AR=$TOOLCHAIN/bin/llvm-ar
export AS=$TOOLCHAIN/bin/llvm-as
export LD=$TOOLCHAIN/bin/ld
export STRIP=$TOOLCHAIN/bin/llvm-strip
export SYSROOT=$TOOLCHAIN/sysroot
export PATH=$TOOLCHAIN/bin:$PATH

此时可以在命令行输入,查看有那些工具链。

如编译sqlite

复制代码
./configure CC=aarch64-linux-android34-clang --host=aarch64-linux-android --enable-shared --prefix=./install
cd  build
cmake -DCMAKE_SYSROOT=$SYSROOT -DCMAKE_LIBRARY_PATH=$LD_LIBRARY_PATH ..


make -j32
make install

第二种编译如tiff

直接使用DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake

复制代码
tiff

cmake -DCMAKE_INSTALL_PREFIX=./../install -Dtiff-docs=OFF  -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake ..
make
make install

有些依赖,需要在CMakelist.txt中增加

如下,报啥错,增加啥。

复制代码
set(SQLite3_INCLUDE_DIR "/sqlite/install/include")
set(SQLite3_LIBRARY "/sqlite/install/lib") 
set(EXE_SQLITE3 /sqlite/install/bin/sqlite3)


set(TIFF_INCLUDE_DIR "/libtiff/build/install/include")
set(TIFF_LIBRARY "/libtiff/build/install/lib") 



set(CURL_INCLUDE_DIR "/curl/install/include")
set(CURL_LIBRARY "/curl/install/lib")
相关推荐
河铃旅鹿2 小时前
在Ubuntu系统上为Android交叉编译OpenSSL
android·linux·ubuntu
nannan85862 小时前
android 性能+AI 日志库-StatLog
android
xuankuxiaoyao2 小时前
Zygisk-LSPosed 模块完整作用说明
android
YXL1111YXL3 小时前
ViewModel 底层原理
android
阿pin3 小时前
Android随笔-APP首次启动流程
android·application·activity
阿pin3 小时前
Android随笔-SELinux是什么?
android·selinux
红糖奶茶3 小时前
设备管理器中Android出现黄色感叹号怎么办? 如何修复?
android
取个名字太难了~3 小时前
从通用到专用:影像 SDK 的场景化封装与垂直行业落地实践
android·数码相机·美颜·相机连接·demu
zakariyaa333 小时前
Android 绘制调度机制
android·gitee
安卓修改大师3 小时前
安卓修改大师Smali语法实战:从零掌握数据类型、判断循环、自定义方法与Toast插桩
android