http://blog.chinaunix.NET/uid-30441-id-2133838.html

1、下载源代码http://www.sqlite.org/download.html
2、tar -zxvf sqlite-amalgamation-3.6.23.1.tar.gz
3、进入sqlite-3.6.23.1
4、mkdir build
5、cd build
6、../configure --host=arm-linux --prefix=/usr/local/sqlite3 注意:使用arm-linux-gcc 3.4.5时出现如下错误 checking for C compiler default output file name... configure: error: C compiler cannot create executables See `config.log' for more details.
怀疑没有写权限,使用如下配置通过 sudo ../configure --host=arm-linux --prefix=/usr/local/sqlite3 移植到开发板上无法运行,使用下面配置 ../configure --host=arm-unknown-linux-gnu --prefix=/usr/local/sqlite3
7、make
出现问题: arm-none-linux-gnueabi-gcc: 3.6.23.1": No such file or directory < command-line>: warning: missing terminating " character ^Cmake: *** [sqlite3.lo] 错误 1
解决:
Makefile中 -DPACKAGE_STRING=\"sqlite\ 3.6.23.1\" 改为: -DPACKAGE_STRING=\"sqlite_3.6.23.1\"
8、sudo make install
出现问题: arm-linux-ranlib /usr/local/sqlite3/lib/libsqlite3.a ./libtool: line 6619: arm-linux-ranlib: command not found make[1]: *** [install-libLTLIBRARIES] 错误 127 make[1]:正在离开目录 `/work/development/sqlite/sqlite-3.6.23.1/build' make: *** [install-am] 错误 2
原因:root权限的时候没有设置arm-linux 的PATH
解决: su 根用户登录 export PATH=$PATH:/work/tools/arm/bin
make install
9、cd /usr/local/sqlite3
10、cp -arf bin include lib /work/nfs_root/sqlite/ 复制到nfs共享文件夹下
11、mount -t nfs -o intr,nolock,rsize=1024,wsize=1024 192.168. 0.128:/work/nfs_root /mnt/nfs/ mount nfs文件系统
12、cp /mnt/nfs/sqlite/bin/* /usr/bin/ mkdir /usr/lib cp -arf /mnt/nfs/sqlite/lib/* /usr/lib/ mkdir /usr/include cp /mnt/nfs/sqlite/include/* /usr/include/
13、开发板上创建数据库 # /usr/bin/sqlite3 demo SQLite version 3.6.23.1 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite> create table tbl_demo(uid int, uname varchar(20)); sqlite> insert into tbl_demo values(1, 'jimmy'); sqlite> insert into tbl_demo values(2, 'srp'); sqlite> .quit
14、编写测试程序test.c

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include "sqlite3.h"
  4. static int callback(void *NotUsed, int argc, char **argv, char **azColName)
  5. {
  6. int i;
  7. for(i=0; i<argc; i++) {
  8. printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
  9. }
  10. printf("\n");
  11. return 0;
  12. }
  13. int main(int argc, char **argv)
  14. {
  15. sqlite3 *db;
  16. char *zErrMsg = 0;
  17. int rc;
  18. if( argc!=3 ){
  19. fprintf(stderr, "Usage: %s DATABASE SQL-STATEMENT\n", argv[0]);
  20. exit(1);
  21. }
  22. rc = sqlite3_open(argv[1], &db);
  23. if( rc ){
  24. fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
  25. sqlite3_close(db);
  26. exit(1);
  27. }
  28. rc = sqlite3_exec(db, argv[2], callback, 0, &zErrMsg);
  29. if( rc!=SQLITE_OK ){
  30. fprintf(stderr, "SQL error: %s\n", zErrMsg);
  31. sqlite3_free(zErrMsg);
  32. }
  33. sqlite3_close(db);
  34. return 0;
  35. }
#include <stdio.h>
#include <stdlib.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-STATEMENT\n", argv[0]);
exit(1);
} rc = sqlite3_open(argv[1], &db);
if( rc ){
fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
sqlite3_close(db);
exit(1);
} rc = sqlite3_exec(db, argv[2], callback, 0, &zErrMsg);
if( rc!=SQLITE_OK ){
fprintf(stderr, "SQL error: %s\n", zErrMsg);
sqlite3_free(zErrMsg);
} sqlite3_close(db); return 0;
}

15、编译 arm-linux-gcc test.c -I /usr/local/sqlite3/include -L /usr/local/sqlite3/lib -lsqlite3 -o test
16、将test拷贝到开发板与数据库demo同一个目录下 sqlite demo test
17、运行 # ./test demo "select * from tbl_demo" uid = 1 uname = jimmy
uid = 2 uname = srp
18、sqlite移植成功
注意: #gcc test.c -I /usr/local/sqlite3/include -L /usr/local/sqlite3/lib -lsqlite3 -o test
/usr/bin/ld: skipping incompatible /usr/local/sqlite3/lib/libsqlite3.so when searching for -lsqlite3 /usr/bin/ld: skipping incompatible /usr/local/sqlite3/lib/libsqlite3.a when searching for -lsqlite3 /usr/bin/ld: cannot find -lsqlite3 collect2: ld 返回 1
原因:sqlite是使用arm-linux-gcc编译的,所以使用的gcc与arm-linux-gcc不兼容

s3c6410下移植sqlite3.7.8的更多相关文章

  1. [OpenCV][ARM9下移植OpenCV]

    [OpenCV][ARM9下移植OpenCV]   安装环境 宿主机: Red Hat Enterprise Linux Server 6.3 开发板: mini2440 相关软件: cmake-3. ...

  2. linux下安装sqlite3

    1.介绍:sqlite3是linux上的小巧的数据库,一个文件就是一个数据库.2.安装:  要安装sqlite3,可以在终端提示符后运行下列命令:  sudo apt-get install sqli ...

  3. 如何移植sqlite3到嵌入式平台

    本人也时常看其他人的blog,搜索资料的目的是尽快解决当前的问题,例如如何移植一个ssh,尽快要明白所需的东西,方能移植完成. 移植sqlite3的步骤如下: 1. 到官方网站下载指定的源码包:htt ...

  4. 成功移植SQLite3到ARM Linux开发板

    SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了 ...

  5. S3C6410板子移植 Android2.2

    一:Android简介 1.什么是Android: Android是一种基于linux的自由及开放源代码的操作系统,主要适用于移动设备,如智能手机和平板电脑,是由google公司和开放手机联盟领导和开 ...

  6. linux(TINY6410)下移植boa服务器

    今天在tiny6410上移植了boa服务器,中间遇到了一些小问题.当时也及时解决了. 第一步:boa的编译 在www.boa.org下载Boa的压缩包  我这里用的是 boa-0.94.13.tar. ...

  7. ubuntu下基于sqlite3后台的php环境的搭建

    最近准备把公司的服务器换成linux 数据库sqlite3 搭建过程记录如下: 1 sqlite3安装.. apt-get install sqlite 2.PHP服务器搭建. apt-get ins ...

  8. 【解决】Django下使用sqlite3的相关问题

    最近在玩Django,想用它写一个很小很小的项目,Django自带数据库sqlite3,本来项目也小,我就用它了. 玩意虽小,东西却不是那么好用的. 首先,在项目中建立模型,一个例子是这样的: cla ...

  9. 四种数据持久化方式(下) :SQLite3 和 Core Data

    在上文,我们介绍了iOS开发中的其中2种数据持久化方式:属性列表.归档解档. 本节将继续介绍另外2种iOS持久化数据的方法:数据库 SQLite3.Core Data 的运用: 在本节,将通过对4个文 ...

随机推荐

  1. BZOJ5073 小A的咒语(动态规划)

    设f[i][j][0/1]为前i位选j段时其中第i位选/不选最多能匹配到哪,转移时f[i][j][0]→f[i+1][j][0],f[i][j][1]→f[i+1][j][0],f[i][j][1]→ ...

  2. [洛谷P5147]随机数生成器

    题目大意:$$f_n=\begin{cases}\frac{\sum\limits_{i=1}^nf_i}n+1&(n>1)\\0&(n=1)\end{cases}$$求$f_n ...

  3. php+memcached缓存技术实例

    一.memcached 简介 在很多场合,我们都会听到 memcached 这个名字,但很多同学只是听过,并没有用过或实际了解过,只知道它是一个很不错的东东.这里简单介绍一下,memcached 是高 ...

  4. bzoj2089&2090: [Poi2010]Monotonicity

    双倍经验一眼题... f[i][1/2]表示以i结尾,当前符号应该是</>的最长上升子序列, 用BIT优化转移就好 =的话就不用说了吧= = #include<iostream> ...

  5. 解题:POI 2009 TAB

    题面 这也算是个套路题(算吗)?发现换来换去每行每列数的组成是不变的,那么就把每行每列拎出来哈希一下,复杂度$O(Tn^2log$ $n)$有点卡时=.=. 然而正解似乎不需要哈希,就像这样↓ ;i& ...

  6. Linux之Makefile20160707

    说一下LINUX下的Makefile,直接根据实际碰到的Makefile进行解读: 当make的目标为all时,-C $(KDIR) 指明跳转到内核源码目录下读取那里的Makefile:M=$(PWD ...

  7. python创建多维列表

    By francis_hao    Mar 24,2018   "*"操作符可以用于列表,表示将列表内容重复n次.如下,   但是当列表内容是列表的时候就出问题了,如果我只是修改多 ...

  8. libevent学习笔记(参考libevent深度剖析)

    最近自学libevent事件驱动库,参考的资料为libevent2.2版本以及张亮提供的<Libevent源码深度剖析>, 参考资料: http://blog.csdn.net/spark ...

  9. count distinct

    SELECT COUNT(DISTINCT Customer) AS NumberOfCustomers FROM Orders

  10. SpringBoot(五) :spring data jpa 的使用

    原文出处: 纯洁的微笑 在上篇文章springboot(二):web综合开发中简单介绍了一下spring data jpa的基础性使用,这篇文章将更加全面的介绍spring data jpa 常见用法 ...