1.下载sqlite3源代码
http://www.sqlite.org/sqlite-autoconf-3071400.tar.gz
2.解压源代码:
1 | tar xvzf sqlite-autoconf-3071400.tar.gz |
3. 配置交叉编译到armlinux平台,prefix=/home/at91sam9/sqlite-autoconf-3071400/sqlite-arm为目标目录:
1 | ./configure --host=arm-none-linux-gnueabi --prefix=/home/at91sam9/sqlite-autoconf-3071400/sqlite-arm |
4.编译:
1 | make |
5.安装:
1 | make install |
6.生成文件:
头文件和生成的库文件将安装到/home/at91sam9/sqlite-amalgamation-3.6.1/sqlite-arm目录
1 | cd /home/at91sam9/sqlite-amalgamation-3.6.1/sqlite-arm/lib |
用如下命令查看webs执行文件依赖的库文件:
1 | arm-none-linux-gnueabi-readelf -d libsqlite3.so.0.8.6 |
其中,arm-none-linux-gnueabi-依你用的交叉编译器而定。
查看得到如下信息:
1 | Dynamic section at offset 0x8ae94 contains 28 entries: |
依赖的库如果嵌入式系统lib目录没有,将没有的依赖库文件复制到嵌入式系统的相应lib目录中。
bin文件夹下的sqlite3,是sqlite可执行应用程序,下载到板子Linux系统下的/bin目录或者/usr/bin目录下,并添加文件可执行权限。在板子Linux系统命令行下执行:
libsqlite3.so和libsqlite3.so.0都是libsqlite3.so.0.8.6的软链接文件。真正需要下载到板子目录/lib下的动态libsqlite3.so.0.8.6。
要成功在嵌入式系统运行sqlite3,需要把./lib下的动态链接库下载到板子上。否则会有无法找到动态链接库libsqlite3.so.0的错误提示。
下载到板子后,还需对它建立软链接文件,因为可执行程序寻找的动态链接库的名字为libsqlite3.so.0,在嵌入式系统运行如下指令:
1 | ln -s /lib/libsqlite3.so.0.8.6 /lib/libsqlite3.so.0 |
打印显示如下信息,代表成功运行!
1 | # ./sqlite3 |
7. 写自己的数据库应用
1 | //error sqlite3_exec( db , sql , 0 , callback , &zErrMsg ); |
8. 编写Makefile
1 | prefix=/home/at91sam9/sqlite-amalgamation-3.6.1/sqlite-arm |
注意makefile里的红色字体内容可以在sqlite安装目录的lib下的pkconfig下的文件查得。