嵌入式linux中,QSqlDatabase的跨文件引用。

jiamianshiye 2015-03-19 02:22:21
各位朋友、大神大家好。我在做QT移植时,关于sqlite数据库部分总是出现段错误。
QT版本:Ubuntu上4.8.5, 交叉编译QT库:4.8.5, 交叉编译器版本为:arm-none-linux-gnueabi-g++ 4.3.3

我在main.cpp中定义了一个全局的db,在main()函数中进行初始化。
QSqlDatabase db;

main()函数初始化

main
{
//................
db = QSqlDatabase::addDatabase("QSQLITE");//添加数据库驱动
db.setDatabaseName(QString::fromUtf8(DATABASEPATH));//数据库连接命名
if(!db.open()) //打开数据库
{
qDebug()<<db.lastError();
}else{
CreateTables createTable;//创建所有的表,自定义函数
createTable.createAll_tb();
createTable.insert_tb();
}
//...............
}

当我在其他源文件使用extern 方式调用db时, 在Ubuntu上面查询、删除等操作都没有错误。。但是移植到ARM上面,就会出现错误。比如我在查询之前使用db.isOpen()、db.close()、db.open()都会爆出段错误。
请问各位朋友有遇见过这种问题的没,或者帮忙指点一下错误所在。
谢谢。
...全文
109 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiamianshiye 2015-03-19
  • 打赏
  • 举报
回复
已经解决了,是C层跟GUI层两个人定义了相同的数据库名。。。db。。。所以才出现这种错误
  • 打赏
  • 举报
回复
原因是啥,我不知道。只是建议使用singleton。

16,240

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧