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")
相关推荐
雪球Snowball5 小时前
【Android关键流程】资源加载
android
2501_915918415 小时前
常见 iOS 抓包工具的使用,从代理抓包、设备抓包到数据流抓包
android·ios·小程序·https·uni-app·iphone·webview
墨月白7 小时前
[QT]QProcess的相关使用
android·开发语言·qt
enbug7 小时前
编译安卓内核:以坚果R1、魔趣MK100(Android 10)系统为例
android·linux
、BeYourself7 小时前
应用专属文件与应用偏好设置(SharedPreferences)
android
2501_948120158 小时前
基于模糊数学的风险评估模型
android
MengFly_8 小时前
Compose 脚手架 Scaffold 完全指南
android·java·数据库
·云扬·9 小时前
MySQL Binlog三种记录格式详解
android·数据库·mysql
月明泉清9 小时前
Android中对于点击事件的深度梳理(二)
android
遇见火星9 小时前
Linux 服务可用性监控实战:端口、进程、接口怎么监控?
android·linux·运维