欢迎投稿

今日深度:

Linux下SQLite大乐透追加倍投多少钱移植与编程,linuxsqlite

Linux下SQLite大乐透追加倍投多少钱移植与编程,linuxsqlite


?

//----------------------------------------------------

//AUTHOR: lanyang123456

//DATE: 2012-6-20

//----------------------------------------------------

?

?

环境

宿主机系统 Fedora 16内核 3.1

ARM开发板OK6410? Linux系统内核3.1

sqlite 版本:3.7.13

目录

1.源码下载

2.交叉编译与移植

3.编程

参考

?


1.源码下载

?

官网下载地址

?

http://www.sqlite.org/download.html

选择下载项:

Source Code

sqlite-autoconf-3071300.tar.gz
(1.76 MiB)

?

下载得到文件

sqlite-autoconf-3071300.tar.gz

?

?

2.交叉编译与移植

2.1编译

解压sqlite压缩文件

tar –zvxf sqlite-autoconf-3071300.tar.gz

得到文件sqlite-autoconf-3071300

?

?

参考sqlite安装源文件中的INSTALL文件

?

?? If you want to _use_ a cross compiler, that generates code for a

platform different from the build platform, you should specify the

"host" platform (i.e., that on which the generated programs will

eventually be run) with `--host=TYPE'.

?

进入目录sqlite-autoconf-3071300

[root@localhost ~]# cd /home/sqlite-autoconf-3071300/

查看configure命令的帮助,可以得到配置参数说明。

[root@localhost sqlite-autoconf-3071300]# ./configure --help

`configure' configures sqlite 3.7.13 to adapt to many kinds of systems.

……

?

?

[root@localhost sqlite-autoconf-3071300-cross]# ./configure --prefix=/home/sqlite_result? --host=arm-linux? CC=/usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-gcc

?

配置参数--prefix=/home/sqlite_result指明编译后文件的安装路径

配置参数--host=arm-linux指明运行的系统平台

配置参数CC=/usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-gcc指明交叉编译器的路径

另外,有时会用到共享库参数

---enable-shared?参数用于限定编译时产生共享库

---disable-shared?参数用于限定编译不产生共享库

?

编译

[root@localhost sqlite-autoconf-3071300-cross]# make

?

安装

安装路径为configure配置参数--prefix=/home/sqlite_result指定的路径/home/sqlite_result

[root@localhost sqlite-autoconf-3071300-cross]# make install

?

查看安装目录

[root@localhost sqlite-autoconf-3071300-cross]# ls /home/sqlite_result/

bin? include? lib? share

?

bin目录下是可执行文件sqlite3

include目录下是头文件sqlite3.h sqlite3ext.h

lib目录下是编译生成的库文件,包括静态库和共享库。

share目录下是帮助文档man

?

对交叉编译后的文件进行适当处理

使用file命令查看文件类型等信息。

[root@localhost bin]# file sqlite3

sqlite3: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.14, not stripped

[root@localhost bin]# ls -l sqlite3

-rwxr-xr-x. 1 root root 94462? 6 17 13:14 sqlite3

[root@localhost bin]# /usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-strip sqlite3

arm-linux-strip用于剥离调试信息,使文件变小。

[root@localhost bin]# ls -l sqlite3

-rwxr-xr-x. 1 root root 46112? 6 17 14:09 sqlite3

处理后文件明显缩小,这样更适合开发板上使用。

[root@localhost bin]#

[root@localhost bin]# file sqlite3

sqlite3: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.14, stripped

其他需要移植的文件如库文件等,也可进行此操作,以减小文件大小。

2.2移植

需要移植的文件有可执行文件sqlite3?库文件libsqlite3.so.0.8.6,如果要用到静态库,静态库要需要移植。

移植可执行文件

拷贝可执行文件到开发板系统标准路径

[root@FORLINX6410]# cp sqlite3 /usr/bin

?

移植库文件

拷贝共享库文件到开发板系统标准库路径 /lib或者/usr/lib

[root@FORLINX6410]# cp libsqlite3.so.0.8.6 /usr/lib

?

创建共享库的软链接

[root@FORLINX6410]# cd /usr/lib

[root@FORLINX6410]# ln -s libsqlite3.so.0.8.6 libsqlite3.so.0

[root@FORLINX6410]# ln -s libsqlite3.so.0.8.6 libsqlite3.so

[root@FORLINX6410]# ls -l |grep sqlite

lrwxrwxrwx?? 1 root? root? 19 Jun 17 11:36 libsqlite3.so -> libsqlite3.so.0.8.6

lrwxrwxrwx ??1 root? root?? ?19 Jun 17 11:35 libsqlite3.so.0 -> libsqlite3.so.0.8.6

-rwxr-xr-x??? 1 root?? root? 1771945 Jun 17 11:32 libsqlite3.so.0.8.6

[root@FORLINX6410]#

?

[root@FORLINX6410]# sqlite3? mydatabase

sqlite3: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory

[root@FORLINX6410]#

?

缺少库文件libncurses.so.5

这需要下载ncurses库文件源码并交叉编译,详细过程见ncurses库的移植http://blog.csdn.net/lanyang123456/article/details/7680710。

?

交叉编译得到libncurses.so.5.0库文件

?

将交叉编译得到的库文件拷贝到开发板系统标准库路径 /lib或者 /usr/lib

[root@FORLINX6410]# cp libncurses.so.5.0? /lib

为共享库创建软链接

[root@FORLINX6410]# ln -s libncurses.so.5.0 libncurses.so.5

[root@FORLINX6410]# ln -s libncurses.so.5 libncurses.so

?

[root@FORLINX6410]# sqlite3 my

SQLite version 3.7.13 2012-06-11 02:05:22

Enter ".help" for instructions

Enter SQL statements terminated with a ";"

sqlite> .show

???? echo: off

? explain: off

? headers: off

???? mode: list

nullvalue: ""

?? output: stdout

separator: "|"

??? stats: off

??? width:

sqlite>

?

3.编程

?

程序源文件见sqlite3嵌入式编程实例http://download.csdn.net/detail/lanyang123456/4384426。

?

在宿主PC机上对源文件进行交叉编译

?

[root@localhost arm-linux]# /usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-gcc -L/home/sqlite_result/lib -lsqlite3 -o mysqlite3 mysqlite.c

编译选项-L/home/sqlite_result/lib指明编译使用的库的路径

上面提到sqlite交叉编译得到的库安装在目录 /home/sqlite_result/lib

?

编译选项-lsqlite3指明编译使用的库的名字

?

拷贝编程用到的头文件、源文件以及可执行文件到开发板

[root@FORLINX6410]# cp sqlite3.h /home/sqlite_prog/

[root@FORLINX6410]# cp sqlite3ext.h /home/sqlite_prog/

[root@FORLINX6410]# cp mysqlite.c /home/sqlite_prog/

[root@FORLINX6410]# cp mysqlite3 /home/sqlite_prog/

[root@FORLINX6410]# cd /home/sqlite_prog/

[root@FORLINX6410]# ls

mysqlite.c??? mysqlite3???? sqlite3.h???? sqlite3ext.h

为了方便查看运行结果,创建文件myfile

[root@FORLINX6410]# touch myfile

将运行结果输出到myfile文件

[root@FORLINX6410]# ./mysqlite3 >myfile

?[root@FORLINX6410]# ls

mydatabase.db? mysqlite.c???? sqlite3.h

myfile???????? mysqlite3????? sqlite3ext.h

其中mydatabase.db是创建的大乐透追加倍投多少钱文件。

查看运行结果

[root@FORLINX6410]#vi myfile

You have opened a sqlite3 database successfully!

row:4 column = 5

……

详细结果见执行结果文件http://download.csdn.net/detail/lanyang123456/4384426。

?

参考?

SQLite 官网

http://www.sqlite.org/

?

SQLite中文网

http://www.sqlite.com.cn/

?

SQLite3 使用教学?大乐透追加倍投多少钱使用说明

http://www.sqlite.com.cn/MySqlite/4/378.Html

?

嵌入式大乐透追加倍投多少钱SQLite的一份教程

http://www.sqlite.com.cn/MySqlite/3/380.Html

?

sqlite3编程笔记 .

http://blog.csdn.net/wl_haanel/article/details/6231417

?

SQLite3 API编程手册

http://www.cnblogs.com/hnrainll/archive/2011/09/08/2170506.html

?

几篇关于嵌入式大乐透追加倍投多少钱的简介,包括SQLite? Berkeley DB

http://blog.chinaunix.net/uid/9563036/frmd/23812.html

?

嵌入式大乐透追加倍投多少钱SQLite移植到S3C2410的方法 .

http://blog.csdn.net/liuzhidong123/article/details/6827379

?

sqlite嵌入式大乐透追加倍投多少钱在arm-linux下的编译全攻略

http://blog.chinaunix.net/uid-9563036-id-352307.html

?

嵌入式大乐透追加倍投多少钱sqliteMotorola Coldfire + uclinux下的移植

http://www.sqlite.com.cn/MySqlite/6/379.Html

?

SQLITE3 使用总结 windows下编程接口说明

http://hi.baidu.com/llhg/blog/item/0c3c0da89d83d6b3cb130cdf.html

?

sqlite3使用简介? Windows下编程接口说明

http://www.cnblogs.com/kfqcome/archive/2011/06/27/2136999.html

?

Sqlite快速上手使用指南 WindowsSQLite图形界面使用

http://www.cnblogs.com/yjmyzz/archive/2010/02/18/1669210.html

?

Linux configure关于交叉编译的参数设置

http://tech.ccidnet.com/art/2583/20080307/1383653_1.html

?

arm-linux-strip

http://blog.sina.com.cn/s/blog_6035432c0100jnuc.html

?

转载请注明出处。

www.htsjk.Com true http://www.htsjk.com/SQLite/36065.html NewsArticle Linux下SQLite大乐透追加倍投多少钱移植与编程,linuxsqlite ? //---------------------------------------------------- //AUTHOR: lanyang123456 //DATE: 2012-6-20 //---------------------------------------------------- ? ? 环境 宿主机系统 Fed...
相关文章
    暂无相关文章
评论暂时关闭