2011-04-01 18 views
0

两年前,我使用QSqlDatabase对象编写了一个示例程序,并使用依赖于静态库的Qt配置。它编译按预期运行。去年的某个时候,我使用共享库重建了配置,现在我收到以下错误。QtSql程序不能用于共享库配置

以下是错误:

main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) publ 
ic: __thiscall QSqlDatabase::~QSqlDatabase(void)" ([email protected]@[email protected] 
) referenced in function _main 
... 
debug\qtsql.exe : fatal error LNK1120: 12 unresolved externals 

这里是我的包括与对象在main.cpp中实例化:

#include <Qt> 
#include <QtDebug> 
#include <QtSql\QSqlDatabase> 
#include <QFile> 
#include <QtSql\QSqlQuery> 
#include <QString> 
#include <QVariant> 
#include <QDate> 

int main() 
{ 
    QSqlDatabase db = QSqlDatabase::addDatabase("QODBC"); 
    ... 

而且,这里是我的.pro文件:

TEMPLATE = app 
TARGET = 
DEPENDPATH += . versions 
INCLUDEPATH += . 
# Input 
SOURCES += main.cpp 
# Libraries 
QMAKE_LIB_DIR += C:\\Qt\\4.7.0\\lib 

我以为,.pro文件中的最后一行会给我一个链接,我可能需要在Qt中的任何库。我很不知道如何链接到Qt .dll。

我错过了什么让程序看到QSqlDatabase库?

此外,我必须指定库,即使我已经给它的头文件和库目录?

+0

uhm你解决了你的问题吗?如何删除这个问题或给出一些反馈。 – 2011-04-03 09:03:45

回答

2
CONFIG += qt 
QT += sql 

可能在这里失去了(link to qmake docs)

这里是一个link到Qt的SQL实例。也许你会在那里找到灵感/指导。

+0

感谢您的投入Ronny。我将无法尝试几天的修复。 – jetimms 2011-04-03 18:43:23

+0

Ronny,你的建议几乎奏效,但你的链接让我回答。我必须对.pro文件执行此操作:CONFIG + = qt,并在下一行QT + = sql。再次感谢。 – jetimms 2011-04-04 20:07:51