两年前,我使用 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 库,我缺少什么?
另外,即使我给了它头文件和库目录,我也必须指定库吗?