pc机上要安装交叉编译环境(我安装的是arm-linux-gcc 3.4.1)
把sqlite-3.5.6.tar.gz解压
#tar -vzxf sqlite-3.5.6.tar.gz
进入sqlite-3.5.6目录
#cd sqlite-3.5.6
创建sqlite-arm目录,并进入该目录
#mkdir sqlite-3.5.6
#cd sqlite-arm
接着输入以下命令:
#../configure --prefix=/home/tong/sqlite-3.5.6/sqlite-arm --disable-tcl --host=arm-linux
configure:是软件的组态设置文件,产生对应平台的Makefile文件,--prefix:表示产生的文件的存放目录
接着进行编译并进行安装
#make \\根据Makefile的内容 编译出符合平台的可执行文件
#make install \\安装编译成功的软件
执行完以上命令就会在/home/tong/sqlite-3.5.6/sqlite-arm/目录下产生:bin,include,lib等
可以分别使用如下命令把动态库文件的调试信息给剥离,减少文件所占有的空间
#arm-linux-strip libsqlite3.so.0.8.6
#arm-linux-strip sqlite3
把bin目录下的sqlite3文件和lib目录下所有的文件都复制到新创建的目录sqlite,然后把sqlite整个文件夹烧到板上(我的存放的位置是/mnt/yaffs/,由于lib目录的libsqlite3.so和libsqlte3.so.0是libsqlite3.so.0.8.6的软连接文件,所以复制不了,可以先去不管它)
设置环境变量
[/mnt/yaffs/sqlite]export LD_LIBRARY_PATH=/mnt/yaffs/sqlite/:$LD_LIBRARY_PATH
[/mnt/yaffs/sqlite]export PATH=/mnt/yaffs/sqlite/:$PATH
接下来建立软连接
[/mnt/yaffs/sqlite]ln -s libsqlite3.so.0.8.6 libsqlite3.so.0
[/mnt/yaffs/sqlite]ln -s libsqlite3.so.0.8.6 libsqlite3.so
这样,移植就算完成了
[/mnt/yaffs/sqlite]sqlite3 test.db
出现如下内容,表示成功
SQLite version 3.5.6
Enter ".help" for instructions
sqlite>
接着,编写一个连接sqlite数据库的程序,在2410上运行
编译程序: tong@tong-desktop:~/exp$ arm-linux-gcc sqlite_connect.c -o sqlite_connect -lsqlite3 -L/home/tong/sqlite-3.5.6/sqlite-arm/lib -I/home/tong/sqlite-3.5.6/sqlite-arm/include -lsqlite3 -L/home/tong/sqlite-3.5.6/sqlite-arm/lib:表示在/home/tong/sqlite-3.5.6/sqlite-arm/lib目录中寻找sqlite3的库文件 -I/home/tong/sqlite-3.5.6/sqlite-arm/include:表示在/home/tong/sqlite-3.5.6/sqlite-arm/include目录中寻找头文件 查看产生的文件的属性: tong@tong-desktop:~/exp$ file sqlite_connect sqlite_connect: ELF 32-bit LSB executable,ARM,version 1,dynamically linked (uses shared libs),for GNU/Linux 2.4.3,not stripped 把sqlite_connect文件烧到板上,运行: [/mnt/yaffs/test]./sqlite_connect open test.db successfully! 成功!!!
把sqlite-3.5.6.tar.gz解压
#tar -vzxf sqlite-3.5.6.tar.gz
进入sqlite-3.5.6目录
#cd sqlite-3.5.6
创建sqlite-arm目录,并进入该目录
#mkdir sqlite-3.5.6
#cd sqlite-arm
接着输入以下命令:
#../configure --prefix=/home/tong/sqlite-3.5.6/sqlite-arm --disable-tcl --host=arm-linux
configure:是软件的组态设置文件,产生对应平台的Makefile文件,--prefix:表示产生的文件的存放目录
接着进行编译并进行安装
#make \\根据Makefile的内容 编译出符合平台的可执行文件
#make install \\安装编译成功的软件
执行完以上命令就会在/home/tong/sqlite-3.5.6/sqlite-arm/目录下产生:bin,include,lib等
可以分别使用如下命令把动态库文件的调试信息给剥离,减少文件所占有的空间
#arm-linux-strip libsqlite3.so.0.8.6
#arm-linux-strip sqlite3
把bin目录下的sqlite3文件和lib目录下所有的文件都复制到新创建的目录sqlite,然后把sqlite整个文件夹烧到板上(我的存放的位置是/mnt/yaffs/,由于lib目录的libsqlite3.so和libsqlte3.so.0是libsqlite3.so.0.8.6的软连接文件,所以复制不了,可以先去不管它)
设置环境变量
[/mnt/yaffs/sqlite]export LD_LIBRARY_PATH=/mnt/yaffs/sqlite/:$LD_LIBRARY_PATH
[/mnt/yaffs/sqlite]export PATH=/mnt/yaffs/sqlite/:$PATH
接下来建立软连接
[/mnt/yaffs/sqlite]ln -s libsqlite3.so.0.8.6 libsqlite3.so.0
[/mnt/yaffs/sqlite]ln -s libsqlite3.so.0.8.6 libsqlite3.so
这样,移植就算完成了
[/mnt/yaffs/sqlite]sqlite3 test.db
出现如下内容,表示成功
SQLite version 3.5.6
Enter ".help" for instructions
sqlite>
接着,编写一个连接sqlite数据库的程序,在2410上运行
- #include<stdio.h>
- #include<sqlite3.h>//数据库头文件
- intmain(void)
- {
- sqlite3*db=NULL;
- intrc;
- rc=sqlite3_open("test.db",&db);//打开指定的数据库文件,如果不存在将创建一个同名的数据库文件
- if(rc){
- fprintf(stderr,"Can'topendatabase:%s\n",sqlite3_errmsg(db));
- sqlite3_close(db);
- exit(1);
- }
- else
- printf("opentest.dbsuccessfully!\n");
- sqlite3_close(db);//关闭数据库
- return0;
- }