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")
相关推荐
不会写DN1 小时前
PHP 中的文件读写与上传
android·开发语言·php
冬奇Lab3 小时前
Android 15音频子系统(七):音量控制系统深度解析
android·音视频开发
方白羽8 小时前
Android NFC 功能集成-读卡器模式
android·app·客户端
进击的cc8 小时前
Android Kotlin:委托属性深度解析
android·kotlin
进击的cc8 小时前
Android Kotlin:Kotlin数据类与密封类
android·kotlin
恋猫de小郭8 小时前
你的蓝牙设备可能正在泄漏你的隐私? Bluehood 如何追踪附近设备并做隐私分析
android·前端·ios
私人珍藏库8 小时前
[Android] 卫星地图 共生地球 v1.1.22
android·app·工具·软件·多功能
冰珊孤雪9 小时前
Android Studio Panda革命性升级:内存诊断、构建标准化与AI调试全解析
android·前端
_李小白10 小时前
【OSG学习笔记】Day 23: ClipNode(动态裁剪)
android·笔记·学习
Eagsen CEO10 小时前
如何让 Gemini 在 Android Studio 中顺利工作
android·ide·android studio