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了。
相关推荐
神梦流18 小时前
ops-math 算子库的扩展能力:高精度与复数运算的硬件映射策略
服务器·数据库
让学习成为一种生活方式18 小时前
trf v4.09.1 安装与使用--生信工具42-version2
数据库
啦啦啦_999919 小时前
Redis-5-doFormatAsync()方法
数据库·redis·c#
生产队队长19 小时前
Redis:Windows环境安装Redis,并将 Redis 进程注册为服务
数据库·redis·缓存
老邓计算机毕设19 小时前
SSM找学互助系统52568(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·ssm 框架·javaweb 毕业设计
痴儿哈哈19 小时前
自动化机器学习(AutoML)库TPOT使用指南
jvm·数据库·python
Σίσυφος190019 小时前
PCL法向量估计 之 方向约束法向量(Orientation Guided Normal)
数据库
老毛肚19 小时前
手写mybatis
java·数据库·mybatis
海山数据库19 小时前
移动云大云海山数据库(He3DB)postgresql_anonymizer插件原理介绍与安装
数据库·he3db·大云海山数据库·移动云数据库
云飞云共享云桌面20 小时前
高性能图形工作站的资源如何共享给10个SolidWorks研发设计用
linux·运维·服务器·前端·网络·数据库·人工智能