2022年sqlite-..编译安装与交叉编译全过程详细记录 .pdf
《2022年sqlite-..编译安装与交叉编译全过程详细记录 .pdf》由会员分享,可在线阅读,更多相关《2022年sqlite-..编译安装与交叉编译全过程详细记录 .pdf(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、sqlite-3.3.6 编译安装与交叉编译全过程详细记录下文介绍的内容都是基于Linux RedHat 9.0 平台的。一、PC 机编译安装请阅读在安装包里的INSTALL 文件。或者使用PEAR installer with pear install sqlite。SQLite 已经内置了,你不需要安装任何附加的软件(additional software)。Windows users 可以下载 SQLite 扩展 DLL(php_sqlite.dl)。这里简单介绍一下:假设你得到的是源代码sqlite-3.3.6.tar.gz,这里将告诉你怎么编译它。解压 sqlite-3.3.6.ta
2、r.gz 到/home 目录下For example:tar zxvf sqlite-3.3.6.tar.gz-C/home cd/home mkdir sqlite-ix86-linux cd/home/sqlite-ix86-linux/./sqlite-3.3.6/configure-prefix=/home/sqlite-ix86-linux/编译并安装,然后生成帮助文档make&make install&make doc 如果出现下列错误./sqlite-3.3.6/src/tclsqlite.c:In function DbUpdateHandler:./sqlite-3.3.6/
3、src/tclsqlite.c:333:warning:passing arg 3 of Tcl_ListObjAppendElement makes pointer from integer without a cast./sqlite-3.3.6/src/tclsqlite.c:In function tclSqlFunc:./sqlite-3.3.6/src/tclsqlite.c:419:warning:passing arg 1 of Tcl_NewByteArrayObj discards qualifiers from pointer target type 这个都是tcl 相关
4、的错误,可以先安装ActiveTcl 以解决.假如你不需要tcl 支持,那么这个错误可以这样避免:cd/home/sqlite-ix86-linux/./sqlite-3.3.6/configure-disable-tcl-prefix=/home/sqlite-ix86-linux/编译并安装,然后生成帮助文档make&make install&make doc 不出意外,将不会出现错误,那么库文件已经生成在/home/sqlite-ix86-linux/lib 目录下可执行文件sqlite3 已经生成在/home/sqlite-ix86-linux/bin 目录下下面创建一个新的数据库文件
5、名叫zieckey.db(当然你可以使用不同的名字)来测试数据库.直接输入:/home/sqlite-ix86-linux/bin/sqlite3 test.db 如果出现下面字样表明编译安装已经成功了.SQLite version 3.3.6 Enter.help for instructions sqlite 二、交叉编译sqlite.3.3.6.tar.gz 库文件tar zxvf sqlite-3.3.6.tar.gz-C/home(这一步前面已经有了,为了完整性,这里还是写出来)mkdir/home/sqlite-arm-linux 名师资料总结-精品资料欢迎下载-名师精心整理-第
6、1 页,共 9 页 -设置交叉编译环境export PATH=/usr/local/arm-linux/bin:$PATH cd/home/sqlite-arm-linux/./sqlite-3.3.6/configure-disable-tcl-prefix=/home/sqlite-arm-linux/-host=arm-linux 这步出现错误而没有生成Makefile configure:error:unable to find a compiler for building build tools 前面检查 arm-linux-gcc 都通过了,怎么还说没有找到编译器呢?花了点时间看
7、configure 的脚本,太复杂了,又结合configure.ac 看了一下。原来是要设置config_TARGET_CC和 config_BUILD_CC两个环境变量。config_TARGET_CC是交叉编译器,config_BUILD_CC是主机编译器。重来:export config_BUILD_CC=gcc export config_TARGET_CC=arm-linux-gcc./sqlite-3.3.6/configure-disable-tcl-prefix=/home/sqlite-arm-linux/-host=arm-linux 又出现如下错误checking for
8、/usr/include/readline.h.configure:error:cannot check for file existence when cross compiling 说 readline.h 的错,找到 readline.h 在/usr/include/readline/readline.h 目录,我想这样解决ln-s/usr/include/readline/readline.h/usr/include/readline.h 但还是不行./sqlite-3.3.6/configure-disable-tcl-prefix=/home/sqlite-arm-linux/-h
9、ost=arm-linux 还是出现如下同样的错误checking for/usr/include/readline.h.configure:error:cannot check for file existence when cross compiling 上面说是要检查交叉编译环境,我可以肯定我的交叉编译环境是正确的,所以我决定欺骗configure,我是这样做的cd/home/sqlite-3.3.6 将该目录下的configure 文件的部分内容修改下(这里是根据test$cross_compiling=yes&找到的),这样可以让configure 不去检查你的交叉编译环境。2042
10、0 行 (exit 1);exit 1;改为(echo 1);echo 1;20446 行 (exit 1);exit 1;改为(echo 1);echo 1;在回去重新配置下:cd/home/sqlite-arm-linux/./sqlite-3.3.6/configure-disable-tcl-prefix=/home/sqlite-arm-linux/-host=arm-linux 中间打印信息出现如下错误信息,checking for/usr/include/readline.h.configure:error:cannot check for file existence when
11、 cross compiling 但是还是生成了Makefile 文件一个libtool 脚本,这些将在make 时用到.注意:如果 Makefile 文件中有如下语句BCC=arm-linux-gcc-g-O2 请将其改掉,改成:名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 9 页 -BCC=gcc-g-O2 编译并安装make&make install 这里如果不出意外,将不会出现错误,那么库文件已经生成在/home/sqlite-ix86-linux/lib 目录下 好了,就到这里。sqlite-3.3.17 交叉编译说明1、在 Redhat Linux9 上用 arm-
12、linux-gcc 编译成功sqlite-3.3.17 静态库版本。2、在 Redhat Linux9 上用 arm-linux-gcc 编译成功sqlite-3.3.17 动态库版本。3、在 Redhat Linux9 上用 arm-linux-gcc 编译成功基于sqlite3 静态库的应用程序。4、在 Redhat Linux9 上用 arm-linux-gcc 编译成功基于sqlite3 动态库的应用程序。/=/Compile SQLite using the cross-compiler such as arm-linux-gcc 1.first,get sqlite-3.3.17.
13、tar.gz from www.sqlite.org2.unzip it#tar-zxvf sqlite-3.3.17.tar.gz 3.change into the sqlite-3.3.17 directory cd sqlite-3.3.17 4.make a new directory such as build under sqlite-3.3.17 directory,mkdir sqlite-arm-linux 5.First,Please ensure the cross compiler arm-linux-gcc included in PA TH,Use echo$PA
14、TH,you can look out the PATH,if no,Set the path:export PATH=/usr/local/arm/2.95.3/bin:$PATH 6.3.3.17 版本的 configure 和 Makefile 都不需改动7.change into the build directory you created cd sqlite-arm-linux 8.call the edited configure script from the sqlite directory by using the following option:./configure-
15、disable-tcl-host=arm-linux 9.After that configure should have created a Makefile and a libtool script in your build directory.10.run make command to create the sqlite3 execute file,after a successful compile 11.Now you should find a hiden“.libs”directory in your build directory containing sqlite sha
16、red object files,like libsqlite3.so or static libray files like libsqlite3.a.12.use file sqlite3 to look the inf of sqlite3,run arm-linux-strip sqlite3 to decrease the execute file size.13.upload the sqlite3 to target ARM9 board by any FTP client and make it executive:14.on ARM9 board with terminal
17、or telnet,run chmod 775 sqlite3 15.and then run sqlite3 like this sqlite3 ex2 16.,if you see the following messages:SQLite version 3.3.17 Enter.help for instructions 名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 9 页 -sqlite 在 ARM-Linux平台上移植SQLite 1、软硬件平台本文中采用的硬件平台为Sitsang 嵌入式评估板。Sitsang评估板的核心是PXA255 嵌入式处理器。底层软件系统是
18、以ARM-Linux内核为基础的。要将 SQLite3 移植到 Sitsang 评估板上,除了要有底层操作系统的支持外,还必须要有相应的交叉编译工具链。由于Sitsang 评估板采用的是ARM-Linux作为底层操作系统,因此需要首先安装ARM-Linux工具链。关于ARM-Linux工具链的安装可以参阅文献4。ARM-Linux 工具链通常安装在/usr/local/arm-linux/bin/目录下,通常以 arm-linux-开头。本文中将会涉及到的主要是arm-linux-gcc、arm-linux-ar、arm-linux-ranlib这样三个工具。2、移植过程首先从http:/sq
19、lite.org下载 SQLite 3.4.2。本文中假设将sqlite-3.4.2.tar.gz 下载到/home/liyan/sqlite 目录下。然后,通过下列命令解压缩sqlite-3.4.2.tar.gz 并将文件和目录从归档文件中抽取出来:#tar zxvf sqlite-3.4.2.tar.gz 解压抽取完成之后将会在/home/liyan/sqlite 目录下生成一个sqlite-3.4.2/子目录,在该目录中包 含 了 编 译 所 需 要 的 所 有 源 文 件 和 配 置 脚 本。SQLite3的 所 有 源 代 码 文 件 都 位 于sqlite-3.4.2/src/目录
20、下。和在 PC环境下编译SQLite3 不同,不能通过 sqlite-3.4.2/目录下的 configure 脚本来生成Makefile文件。取而代之的是必须手动修改Makefile 文件。在 sqlite-3.4.2/目录下有一个Makefile 范例文件Makefile.linux-gcc。首先通过下面的命令拷贝此文件并重命名为Makefile:#cp Makefile.linux-gcc Makefile 接下来,用vim 打开 Makefile 文件并手动修改Makefile 文件的内容。首先找到Makefile 文件中的下面这样一行:TOP=./sqlite 将其修改为:TOP=.
21、找到下面这样一行:TCC=gcc-O6 将其修改为:TCC=arm-linux-gcc-O6 找到下面这样一行:AR=ar cr 将其修改为:AR=arm-linux-ar cr 找到下面这样一行:RANLIB=ranlib将其修改为:RANLIB=arm-linux-ranlib 找到下面这样一行:MKSHLIB=gcc-shared 将其修改为:MKSHLIB=arm-linux-gcc-shared 注释掉下面这一行:TCL_FLAGS=-I/home/drh/tcltk/8.4linux 注释掉下面这一行:LIBTCL=/home/drh/tcltk/8.4linux/libtcl8.
22、4g.a-lm-ldl vi 中的查找方法:在命令模式下输入“?”加要查找的字符串,再回车。输入“n”为查找下一处。原则上,对Makefile的修改主要包括两个方面:首先是将编译器、归档工具等换成交叉工具链中的对应工具,比如,gcc 换成 arm-linux-gcc,ar 换成 ar-linux-ar,ranlib 换成 arm-linux-ranlib等等;其次是去掉与TCL 相关的编译选名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 9 页 -项,因为默认情况下,将会编译SQLite3 的 Tcl 语言绑定,但是在移植到ARM-Linux的时候并不需要,因此将两个与 TCL
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年sqlite-.编译安装与交叉编译全过程详细记录 2022 sqlite 编译 安装 交叉 全过程 详细 记录
限制150内