搭建QT+Sqlite3嵌入式开发环境

前言

原创文章欢迎转载,请保留出处。
若有任何疑问建议,欢迎回复。
邮箱:Maxwell_nc@163.com

之前我们已经成功搭建了QT嵌入式开发环境(具体步骤见http://blog.csdn.net/maxwell_nc/article/details/44002745),接下来我们在这个基础上搭建Sqlite3嵌入式数据库开发环境。由于之前编译QT没有使用内嵌数据库的功能,这里也不再重复那麻烦的编译过程,QT也可以通过调用Sqlite3的API来处理数据库,而且比较简单。


下载源码

首先上Sqlite官网(http://www.sqlite.org/)下载源码sqlite-autoconf-3080704.tar 这里我用的是最新的3.8.7.4,(发博文的时候已经更新到3.8.8.3)我也试过移植3.7.17,发现差别不大,效率比新版低,API没有变化,所以这里的只要是3.x的版本差别应该也不大。


编译X86版本

这里编译SQLITE3比QT简单快得多,只需要进入目录配置安装即可,基本不会出错。这个版本用于PC开发和运行所需要的库。 
配置命令 
./configure --prefix=/opt/sqlite_x86 
安装编译 
make && make install


编译ARM版本

这个版本用于ARM开发板调用动态链接库,解压另一份源码,进入目录配置: 
./configure CC=/opt/FriendlyARM/toolschain/4.5.1/bin/arm-linux-gcc --host=arm-linux --prefix=/opt/sqlite_arm(要注意arm-linux-gcc编译器的路径) 
安装编译:make && make install


移植Sqlite3到开发板

首先移植不是必须的,如果你编写的程序采用静态链接封装sqlite的话就不需要在板上移植sqlite,如果你采用动态链接的编译方式,你就需要移植sqlite到开发板,我两种编译方式下面都会说明。

移植过程很简单,把安装生成的目录/opt/sqlite_arm复制到开发板的对应目录,设置库的路径就可以了,我这里用nfs下载(配置方法http://blog.csdn.net/maxwell_nc/article/details/44064041)到板上。

有两种方式配置库路径: 
一种是永久配置,首先vi /etc/ld.so.conf 添加一行 /opt/sqlite_arm/lib 保存退出,再执行ldconfig生效。 
另一种是修改LD_LIBRARY_PATH这种方法必须修改/bin/setqt4env,(不能直接使用export命令,不然的话会被覆盖导致系统无法识别路径)直接修改/bin/setqt4env里的LD_LIBRARY_PATH就可以了。


动态编译

我们新建一个测试程序,使用sqlite编程,只需要在项目上加入: 
(这里我从网上找了一个程序http://download.csdn.net/detail/pengrui18/4543238,非常感谢这位作者,我们使用这个程序做例子)

SQLITE_PATH=/opt/sqlite_x86 # X11和qvfb用X86版sqlite,arm选择arm版sqlite
DEPENDPATH += $$SQLITE_PATH/include
INCLUDEPATH += $$SQLITE_PATH/include
LIBS += -L$$SQLITE_PATH/lib
LIBS += -lsqlite3
   
   
  • 1
  • 2
  • 3
  • 4
  • 5

静态编译

我们新建一个测试程序,使用sqlite编程, 
在项目源码目录下拷贝对应版本的sqlite 文件 /sqlite_arm/lib/libsqlite3.a/sqlite_arm /include/sqlite3.h (这里我们用arm版本) 
需要在项目上加入:LIBS += -L/home/xman/PhoneTestPro/source \-lsqlite3 
可以看出,静态编译这么做不方便切换调试。 
这里要注意,数据库调用使用相对路径和绝对路径的问题,相对路径是相对于运行路径而不是文件所在路径或者源码路径,移植项目到开发板必须把数据库移植到板上,否则会出现错误。


测试效果

下面是测试效果, 
X11版的编译结果,使用动态编译: 
X11

QVFB版的编译结果,使用动态编译: 
QVFB

arm版的编译结果,使用静态编译: 
我运行时候加上参数 -qws -font fixed(改变字体、 防止越界问题,也可以选择其他字体) 
ARM

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值