zoukankan      html  css  js  c++  java
  • Hisi开发板上 SQLite3.3.8移植

    SQLite3.3.8在Hisi3515/3520上的移植

    # tar zxvf sqlite-3.3.8.tar.gz
    解压抽取完成之后将会在/root目录下生成一个sqlite-3.3.8/子目录,在该目录中包含了编译所需要的所有源文件和配置脚本。SQLite3的所有源代码文件都位于sqlite-3.3.8/src/目录下。
    和在PC环境下编 译SQLite3不同,不能通过sqlite-3.3.8/目录下的configure脚本来生成Makefile文件。取而代之的是必须手动修改 Makefile文件。在sqlite-3.3.8/目录下有一个Makefile范例文件Makefile.linux-gcc。首先通过下面的命令拷 贝此文件并重命名为Makefile:
    # cp Makefile.linux-gcc Makefile
    接下来,用vim打开Makefile文件并手动修改Makefile文件的内容。首先找到Makefile文件中的下面这样一行:
    TOP = ../sqlite
    将其修改为:
    TOP = .
    找到下面这样一行:
    TCC = gcc -O6
    将其修改为:
    TCC = arm-hismall-linux-gcc -O6
    找到下面这样一行:
    AR = ar cr
    将其修改为:
    AR = arm-hismall-linux-ar cr
    找到下面这样一行:
    RANLIB = ranlib
    将其修改为:
    RANLIB = arm-hismall-linux-ranlib  
    找到下面这样一行:
    MKSHLIB = gcc -shared
    将其修改为:
    MKSHLIB = arm-hismall-linux-gcc -shared
    注释掉下面这一行:
    TCL_FLAGS = -I/home/drh/tcltk/8.4linux
    注释掉下面这一行:
    LIBTCL = /home/drh/tcltk/8.4linux/libtcl8.4g.a -lm -ldl
    原则上,对 Makefile的修改主要包括两个方面:首先是将编译器、归档工具等换成交叉工具链中的对应工具,比如,gcc换成arm-hismall-linux-gcc,ar换 成arm-hismall-linux-ar,ranlib换成arm-hismall-linux-ranlib等等;其次是去掉与TCL相关的编译选项,因为默认情况下,将会编译 SQLite3的Tcl语言绑定,但是在移植到ARM-Linux的时候并不需要,因此将两个与TCL有关的行注释掉。对Makefile的修改总结如表 1所示。
    表1 Makefile修改情况
    位置
    原值
    修改为
    17行
    TOP = ../sqlite
    TOP = .
    73行
    TCC = gcc -O6
    TCC = arm-hismall-linux-gcc -O6
    81行
    AR = ar cr
    AR = arm-hismall-linux-ar cr
    83行
    RANLIB = ranlib
    RANLIB = arm-hismall-linux-ranlib
    86行
    MKSHLIB = gcc -shared
    MKSHLIB = arm-hismall-linux-gcc -shared
    96行
    TCL_FLAGS = -I/home/drh/tcltk/8.4linux
    #TCL_FLAGS = -I/home/drh/tcltk/8.4linux
    103行
    LIBTCL = /home/drh/tcltk/8.4linux/libtcl8.4g.a -lm -ldl
    #LIBTCL = /home/drh/tcltk/8.4linux/libtcl8.4g.a -lm -ldl
    接下来,还需要修改的一个的文件是main.mk,因为Makefile包含了这个文件。找到这个文件中的下面一行:
    select.o table.o tclsqlite.o tokenize.o trigger.o /
    把它替换成:
    select.o table.o tokenize.o trigger.o /
    也就是把该行上的tclsqlite.o去掉。这样编译的时候将不会编译SQLite3的Tcl语言绑定。
    自此,修改工作就完成了,接下来就可以开始编译SQLite3了,这通过make命令即可完成:
    # make
    编译完成之后,将在sqlite3.3.8/目录下生成库函数文件libsqlite3.a和头文件sqlite3.h,这就是所需要的两个文件了。

    将测试文件、libsqlite3.a和头文件sqlite3.h放到同一个文件夹下,静态编译
    arm-hismall-linux-gcc -I ./ -L ./ -o test test_sqlite.c -lsqlite3
    即可在hisi3515上运行,不要忘记在linux系统上安装sqlite sqlite3 libsqlite3-dev
  • 相关阅读:
    【Linux】防火墙命令
    【MySQL】mysql分组后重命名
    【SpringBoot】全局配置Long转String,解决前端接收时精度丢失的问题
    【VSCode】vscode运行命令时提示“因为在此系统上禁止运行脚本”
    【Mybatis】mybatisplus代码生成器【逆向工程】搭配Lombok和swagger2
    【Linux】赋予root权限
    【MySQL】mysql模糊匹配多个字段
    idea为新创建的类增加个人注释模板
    【Linux】学习笔记:(一)常用命令大全
    Navicat查看数据库的密码
  • 原文地址:https://www.cnblogs.com/doctorqbw/p/2385281.html
Copyright © 2011-2022 走看看