s3c6410下移植sqlite3.7.8
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
- #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;
 - }
 
#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的更多相关文章
- [OpenCV][ARM9下移植OpenCV]
		
[OpenCV][ARM9下移植OpenCV] 安装环境 宿主机: Red Hat Enterprise Linux Server 6.3 开发板: mini2440 相关软件: cmake-3. ...
 - linux下安装sqlite3
		
1.介绍:sqlite3是linux上的小巧的数据库,一个文件就是一个数据库.2.安装: 要安装sqlite3,可以在终端提示符后运行下列命令: sudo apt-get install sqli ...
 - 如何移植sqlite3到嵌入式平台
		
本人也时常看其他人的blog,搜索资料的目的是尽快解决当前的问题,例如如何移植一个ssh,尽快要明白所需的东西,方能移植完成. 移植sqlite3的步骤如下: 1. 到官方网站下载指定的源码包:htt ...
 - 成功移植SQLite3到ARM Linux开发板
		
SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了 ...
 - S3C6410板子移植 Android2.2
		
一:Android简介 1.什么是Android: Android是一种基于linux的自由及开放源代码的操作系统,主要适用于移动设备,如智能手机和平板电脑,是由google公司和开放手机联盟领导和开 ...
 - linux(TINY6410)下移植boa服务器
		
今天在tiny6410上移植了boa服务器,中间遇到了一些小问题.当时也及时解决了. 第一步:boa的编译 在www.boa.org下载Boa的压缩包 我这里用的是 boa-0.94.13.tar. ...
 - ubuntu下基于sqlite3后台的php环境的搭建
		
最近准备把公司的服务器换成linux 数据库sqlite3 搭建过程记录如下: 1 sqlite3安装.. apt-get install sqlite 2.PHP服务器搭建. apt-get ins ...
 - 【解决】Django下使用sqlite3的相关问题
		
最近在玩Django,想用它写一个很小很小的项目,Django自带数据库sqlite3,本来项目也小,我就用它了. 玩意虽小,东西却不是那么好用的. 首先,在项目中建立模型,一个例子是这样的: cla ...
 - 四种数据持久化方式(下) :SQLite3 和 Core Data
		
在上文,我们介绍了iOS开发中的其中2种数据持久化方式:属性列表.归档解档. 本节将继续介绍另外2种iOS持久化数据的方法:数据库 SQLite3.Core Data 的运用: 在本节,将通过对4个文 ...
 
随机推荐
- 【.Net】从字符串数组中寻找数字的元素
			
那是写一个类别来处理数字元素并收集起来. 开发程序,解决方法不是唯一的.相同的功能实现,方法不止一个. 参考下面代码: class Ak { private string[] _stringArray ...
 - POJ2823_Sliding Window
			
以前也碰到过这种类型的题目,以前好像做出来过,但是忘记了,这次又坑了. 题目很简单,对于从前到后每一个连续的长度为k的数字,求出这段数字中的最大的数字和最小的数字. 一开始我用离散化+树状数组来更新和 ...
 - day4 列表 增删改查 元组
			
增lis=["a","b","c",5,7,4]lis.append("s")#在列表的末尾追加lis.extend(& ...
 - canvas - 炫酷的3D星空
			
1.国际惯例,先上效果 (⊙o⊙)… 效果图看上去效果并不很炫酷啊,直接戳 这里 看效果吧! 2代码部分 html: <canvas id="canvas" width=&q ...
 - Linux实用命令行
			
对于Linux命令,我在学习和使用过程中是有一个循序渐进的过程的.适合小白学习快速使用.大笑 跳转目录:cd +路径 例如:cd /home/workspace 查看某个文件,常用的是查看日志:tai ...
 - Java发送http  get/post请求,调用接口/方法
			
由于项目中要用,所以找了一些资料,整理下来. GitHub地址: https://github.com/iamyong 转自:http://blog.csdn.net/capmiachael/a ...
 - dTree 动态生成树
			
http://luohua.iteye.com/blog/451453 dTree 主页:http://destroydrop.com/javascripts/tree/ dTree是个很方便在页面生 ...
 - 树莓派安装python3.5
			
https://gist.github.com/BMeu/af107b1f3d7cf1a2507c9c6429367a3b Installing Python 3.5 on Raspbian As o ...
 - mac命令行快捷键
			
其实不想每次输入host和user,可以在 ~/.ssh/config文件写上配置alias信息,以后ssh的时候根据alias即可.如: Host alias-name HostName ip_ad ...
 - php使用时间戳保存时间的意义
			
时间戳记录的是格林尼治时间,使用date格式化的时候会根据你程序设置的不同时区显示不同的时间. 如果使用具体时间,则还需要进行多一步转换.