sqlite在安卓下使用ndk的交叉编译

对于linux系统,sqlite的交叉编译非常简单。下面分别以32位的arm和64位的arm为例进行介绍。

  1. 32位arm,以hisi3521a为例,首先进行配置:
    ./configure --prefix=/home/crystal/sqlite3/hisv300_install --host=arm-hisiv300-linux
    然后
    make;make install-strip
  2. 64位arm,以hisi3519dv500为例,首先进行配置:
    ./configure --prefix=/home/crystal/sqlite3/hisdv500_install --host=aarch64-v01c01-linux-gnu
    然后
    make;make install-strip
    对于安卓系统使用ndk编译,情况就不一样了,--host=aarch64-linux-android在configure的时候不会被识别,我采用下面的方法来生成,首先运行:
    ./configure --prefix=/home/crystal/sqlite3/android_install --host=aarch64-linux-gnu生成一份arm64位linux下的make file,然后修改这个makefile,将所有的aarch64-linux-gnu替换为aarch64-linux-android。
    另外,在makefile里CFLAGS和BUILD_CFLAGS都加上:-D__ANDROID_API__=27 -pie -fPIE --Wall。最后编译过程中找不到libdl.so,修改makefile的LDFLAGS = -L/home/crystal/all-android-toolchain/arm64/aarch64-linux-android/27/sysroot/usr/lib指定动态库路径。编译前记得export PATH=/home/crystal/all-android-toolchain/arm64/aarch64-linux-android/27/bin:$PATH。至此,就可以make;make install-strip了。
相关推荐
专注API从业者5 分钟前
淘宝商品详情 API 与爬虫技术的边界:合法接入与反爬策略的技术博弈
大数据·数据结构·数据库·爬虫
爱码小白13 分钟前
MySQL 单表查询练习题汇总
数据库·python·算法
WangJunXiang615 分钟前
第09章:PostgreSQL日常维护
数据库·postgresql
BLUcoding34 分钟前
Android 布局介绍
android
三道渊34 分钟前
进程通信与网络协议
开发语言·数据库·php
summerkissyou198737 分钟前
android-蓝牙-状态和协议值总结及监听例子
android·蓝牙
徒 花38 分钟前
数据库知识复习05
android·数据库
豆沙糕39 分钟前
RAG文档切分最佳实践:企业级方案+主流策略+生产落地
数据库·人工智能
不会写DN41 分钟前
SQL 多表操作全解
数据库·sql
爱莉希雅&&&44 分钟前
linux中MySQL数据库备份恢复的四种方法(更新中)
linux·数据库·mysql·数据库备份·mysqldumper