返学费网 > 培训机构 > 南京英贝得嵌入式

025-66911766

全国统一学习专线 8:30-21:00

上篇写到在PC机QT下使用SQLite数据库的东西,如果想把程序交叉编译进行移植有几点要注意

1:头文件的保护,上篇在PC机上的QT程序包含了多项头文件

#include <QtSql/QSQLiteDriver>
#include <QtSql/QSqlDatabase>
#include <QtSql/qsql.h>
#include <QtSql/QSqlQuery>
#include <QtSql/QSqlError>

编译执行都没问题,

但交叉编译发现出现一些奇怪错误,其次是某些头文件找不到,然后比对了PC机得库和嵌入式QT/E的库,发现是有点区别。起先以为是

移植的嵌入式库没有把SQLite支持功能添加进去(如何编译嵌入式QT库以后会介绍)然后自己辛苦编译,结果还是一样。没办法只能从另一方面进行入手,既然是包含头文件的原因,我适当的减少头文件看是否可行,(其实现在这些都文件的作用还没具体搞清楚)根据编译错误把几个头文件注释掉了。

//#include <QtSql/QSQLiteDriver>
#include <QtSql/QSqlDatabase>
//#include <QtSql/qsql.h>
#include <QtSql/QSqlQuery>
#include <QtSql/QSqlError>

这样在PC机上还是可以编译并运行,然后进行交叉编译,出现了undefine的错误。

2:.pro工程文件的设置

QT默认的是你程序中没有数据库,如果你自己添加了数据库,QT也不会知道,不像我们添加个控件或者源文件会在工程里面反应。

上篇也说到如果你使用数据库,在.pro文件里大上QT+=sql;

交叉编译也是一样,我们由qmake-arm生成./pro 里面同样需要我们进行手动添加QT+=sql;

不然就会报告undefine的错误。

把以上俩点处理完毕后,交叉编译成功,把程序拷贝到ARM板上,运行,OPEN数据库OK,移植应该成功了。

 

温馨提示:为不影响您的学业,来校区前请先电话咨询,方便我校安排相关的专业老师为您解答
  • 热门课程
姓名不能为空
手机号格式错误