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")
相关推荐
私人珍藏库5 分钟前
[Android] 轻小说文库(1.23)
android·app·安卓·工具
FrameNotWork24 分钟前
去掉XOSLauncher自带的widget组件图标
android
飞梦工作室35 分钟前
PHP 中 php://input 的全面使用指南
android·开发语言·php
熬夜敲代码的小N1 小时前
Unity WebRequest高级操作:构建高效稳定的网络通信模块
android·数据结构·unity·游戏引擎
Android技术之家1 小时前
安卓对外发布工程源码:如何实现仅暴露 UI 层
android·ui
Digitally1 小时前
如何快速将iPhone上的图片发送到安卓手机(6种方法)
android·智能手机·iphone
w***74172 小时前
MySQL压缩版安装详细图解
android·mysql·adb
童话的守望者3 小时前
DC5通关及溯源分析
android