新手上路
- 积分
- 48
- 金钱
- 48
- 注册时间
- 2020-5-30
- 在线时间
- 19 小时
|
首先呢,uboot和kernel都用的原子资料里面的做好的uboot和linux 文件系统就是采用的原子已经配置好的带有qt5的yocoto文件系统以上是我的软件环境。这一波操作看似没有什么问题吧,但是我在将我以前写的带有sqlite数据库的软件移植到IMX6ULL上的时候发现,没法使用sqlite数据库。
qt代码如下
- //建立数据库连接
- QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
- db.setDatabaseName("/opt/talkback.s3db");
- db.open();
复制代码
在板子上运行提示 QSQLITE Driver not loaded。提示已经很明确了,没有QSQLITE驱动。
1)SQLITE在Qt程序中是以插件形式存在的,这一点在Qt帮助文档里面提到过
2) 查看文件系统 /usr/lib/qt5/plugins 文件夹下面,确实没有sqldrivers这个文件夹,更别提qsqlitedriver了,那么可以得出结论,这个文件系统就是运行不了qtsqlite的
3) 这个文件系统里面的qt版本是qt5.6.2(别问我怎么知道的,踩了很多坑 ),那么就需要我们手动去编译一份qt5.6.2的库了。
4) 在Qt官网下载Qt5.6.2 https://download.qt.io/new_archive/qt/5.6/5.6.2/single/ 选择
5) 之后我们就要请出原子的Qt移植文档了 原子的文档写的真是特别好,照着操作能学到好多东西
6) 但是问题就出在照着原子的文档操作也是没有qt sqlite插件的!怎么操作才能有,就是autoconfigure.sh少了一句话 -plugin-sql-sqlite \
#!/bin/sh
./configure \
-prefix /home/alientek/qt5.5.1/qt-everywhere-opensource-src-5.5.1/arm-qt \
-confirm-license \
-opensource \
-shared \
-release \
-make libs \
-xplatform linux-arm-gnueabi-g++ \
-optimized-qmake \
-pch \
-qt-sql-sqlite \
-plugin-sql-sqlite \
-qt-libjpeg \
-qt-libpng \
-qt-zlib \
-no-opengl \
-no-sse2 \
-no-openssl \
-no-cups \
-no-glib \
-no-dbus \
-no-xcb \
-no-xcursor -no-xfixes -no-xrandr -no-xrender \
-no-separate-debug-info \
-no-fontconfig \
-nomake examples -nomake tools -nomake tests -no-iconv \
-tslib \
-I/home/alientek/tslib/arm-tslib/include \
-L/home/alientek/tslib/arm-tslib/lib
exit
7) 然后一路 autoconfigure 再 make 再 make install就可以看到了 ...../plugins/qsqldrivers/libqsqlite.so了
8) 将这个文件拷贝到文件系统的 /usr/lib/qt5/plugins/qsqldrivers/下面就可以了
如果大家觉得麻烦我将我编译好的传上来
|
|