QtSql程序不适用于共享lib配置

时间:2011-04-01 17:28:22

标签: qt qmake qtsql

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

这是错误:

main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) publ
ic: __thiscall QSqlDatabase::~QSqlDatabase(void)" (__imp_??1QSqlDatabase@@QAE@XZ
) 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库我缺少什么?

另外,即使我已经为它提供了头文件和库目录,我还必须指定库吗?

1 个答案:

答案 0 :(得分:2)

CONFIG += qt
QT += sql

可能在此处遗漏(link to qmake docs)

这是Qt sql示例的link。也许你在那里找到灵感/指导。