首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“QSqlDatabase”未声明

“QSqlDatabase”未声明
EN

Stack Overflow用户
提问于 2009-11-16 07:18:58
回答 3查看 5.3K关注 0票数 0

我对使用QT4非常陌生。我正在尝试在一个已经可以工作的应用程序中使用sql。然而,当我尝试编译时,我得到了这个错误:“‘QSqlDatabase’没有在这个作用域中声明。”

相关代码如下:

代码语言:javascript
复制
#include <QtSql>
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");

 db.setHostName("bigblue");
 db.setDatabaseName("flightdb");
 db.setUserName("acarlson");
 db.setPassword("1uTbSbAs");
 bool ok = db.open();

我已经在我的.pro文件中添加了QT += sql。

上面的代码直接从这里复制过来:http://qt.nokia.com/doc/4.5/qtsql.html

你知道我做错了什么吗?

EN

回答 3

Stack Overflow用户

发布于 2009-11-16 08:23:52

好吧,问题出在我的.pro文件上。这就是给我这个错误的文件:

代码语言:javascript
复制
TEMPLATE = app
QT += sql
QT = gui core
CONFIG += qt debug warn_on console
DESTDIR = bin
OBJECTS_DIR = build
MOC_DIR = build
UI_DIR = build
FORMS = ui/mainwindow.ui ui/dialog.ui ui/dialog_con.ui ui/add_ingredient.ui
HEADERS = src/mainwindowimpl.h \
src/dialogimpl.h \
src/utils.h \
SOURCES = src/mainwindowimpl.cpp \
src/main.cpp \
src/dialogimpl.cpp \
src/utils.cpp \

问题是QT=gui内核覆盖了我的QT+=sql。通过将QT+=sql移到头标上方的bo,它编译得很好。谢谢你的帮助。

票数 5
EN

Stack Overflow用户

发布于 2009-11-16 07:56:16

编译器找不到QtSql头,因此不知道QSqlDatabase。头文件位于include子目录中,因此您可能需要在QtSql行中显式指定以下内容:

代码语言:javascript
复制
#include <QtSql/QtSql>

或者,您必须确保QtSql目录位于编译器的包含文件搜索路径中。

票数 2
EN

Stack Overflow用户

发布于 2009-11-16 07:25:24

我想你只需要一个

代码语言:javascript
复制
#include <QSqlDatabase>

因为这不会自动包含在QtSql中。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1739245

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档