【问题标题】:QtSql program doesn't work with shared lib configurationQtSql 程序不适用于共享库配置
【发布时间】:2011-04-01 17:28:22
【问题描述】:

两年前,我使用 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 库我缺少什么?

另外,即使我给了它头文件和库目录,我是否必须指定库?

【问题讨论】:

  • 呃,你的问题解决了吗?如何删除这个问题或提供一些反馈。

标签: qt qmake qtsql


【解决方案1】:
CONFIG += qt
QT += sql

这里可能缺少(link to qmake docs)

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

【讨论】:

  • 感谢您的意见罗尼。几天之内我将无法尝试解决您的问题。
  • Ronny,你的建议几乎奏效了,但你的链接让我找到了答案。我必须对 .pro 文件执行此操作:CONFIG += qt 和下一行 QT += sql。再次感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-23
  • 1970-01-01
相关资源
最近更新 更多