我是靠谱客的博主 害怕鞋垫,最近开发中收集的这篇文章主要介绍迅为4412开发板sqlite3移植,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1 sqlite3源码下载

https://www.sqlite.org/download.html
sqlite-autoconf-3250200.tar.gz

2 sqlite3源码编译

$ tar -zxvf sqlite-autoconf-3250200.tar.gz
$ cd sqlite-autoconf-3250200
$ touch build.sh
内容如下:

#!/bin/sh

./configure --host=arm-none-linux-gnueabi 
--disable-static 
--prefix=/usr/sqlite3arm  ##/usr/sqlite3arm为预先设定好的目录,用于保存make和make install生成的文件

make && make install

$ chmod 755 build.sh && ./build.sh

3 sqlite3移植

拷贝/usr/sqlite3arm/bin/sqlite3到开发板的/usr/bin目录下
拷贝/usr/sqlite3arm/lib/*.so*到开发板的/usr/lib目录下
说明:如上步骤在制作根文件系统时候就应该完成了,我由于挂载了nfs,是直接copy的

4 sqlite3测试

4.1 命令行测试

在这里插入图片描述
相关命令行:

// 帮助
.help
// 建表
CREATE TABLE "stu_tb" ("id" INTEGER PRIMARY KEY NOT NULL,"name" TEXT NOT NULL,"phone" INTEGER NOT NULL,"gid" INTEGER NOT NULL);
// 查表
SELECT * FROM stu_tb
// 插入信息
INSERT INTO stu_tb VALUES(0002,'simon',12345678901,1);
...
// 退出
.exit

4.2 C语言调用测试

在这里插入图片描述
测试代码参考:

#include <stdio.h>
#include <sqlite3.h>

static int callback (void *NotUsed, int argc, char **argv, char **azColName)
{
        int i;

        for (i = 0; i < argc; i++) {
                printf ("%s = %s n", azColName[i], argv[i] ? argv[i] : "NULL");
        }

        printf ("n");
        return 0;
}

int main (int argc, char **argv)
{
        sqlite3 *db;
        char *zErrMsg = 0;
        int rc;

        if (argc != 3) {
                fprintf (stderr, "Usage: %s DATABASE SQL-STATEMENTn", argv[0]);
                return 1;
        }

        /* 打开数据库 */
        rc = sqlite3_open (argv[1], &db);
        if (rc) {
                fprintf (stderr, "Can't open database:%sn", sqlite3_errmsg(db));
                return 1;
        }

        rc = sqlite3_exec (db, argv[2], callback, 0, &zErrMsg);
        if (rc != SQLITE_OK) {
                fprintf (stderr, "SQL error:%sn", zErrMsg);
                sqlite3_free (zErrMsg);
        }

        /* 关闭数据库 */
        sqlite3_close (db);        return 0;
}   

测试代码编译:

$ arm-none-linux-gnueabi-gcc mySqlite3.c -lsqlite3 -L/usr/sqlite3arm/lib -I/usr/sqlite3arm/include -o sqlarm

## arm-none-linux-gnueabi-gcc 自己设定的交叉编译器
## /usr/sqlite3arm/lib:交叉编译sqlite3时的路径参考文章开头
## /usr/sqlite3arm/include:交叉编译sqlite3时的路径参考文章开头

最后

以上就是害怕鞋垫为你收集整理的迅为4412开发板sqlite3移植的全部内容,希望文章能够帮你解决迅为4412开发板sqlite3移植所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(34)

评论列表共有 0 条评论

立即
投稿
返回
顶部