我对使用QT4非常陌生。我正在尝试在一个已经可以工作的应用程序中使用sql。然而,当我尝试编译时,我得到了这个错误:“‘QSqlDatabase’没有在这个作用域中声明。”
相关代码如下:
#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
你知道我做错了什么吗?
发布于 2009-11-16 08:23:52
好吧,问题出在我的.pro文件上。这就是给我这个错误的文件:
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,它编译得很好。谢谢你的帮助。
发布于 2009-11-16 07:56:16
编译器找不到QtSql头,因此不知道QSqlDatabase。头文件位于include子目录中,因此您可能需要在QtSql行中显式指定以下内容:
#include <QtSql/QtSql>或者,您必须确保QtSql目录位于编译器的包含文件搜索路径中。
发布于 2009-11-16 07:25:24
我想你只需要一个
#include <QSqlDatabase>因为这不会自动包含在QtSql中。
https://stackoverflow.com/questions/1739245
复制相似问题