Программа QtSql не работает с конфигурацией разделяемой библиотеки - PullRequest
0 голосов
/ 01 апреля 2011

Я написал пример программы с использованием объекта 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 Ответ

2 голосов
/ 01 апреля 2011
CONFIG += qt
QT += sql

может отсутствовать здесь (ссылка на документы qmake)

Вот ссылка на примеры Qt sql.Возможно, вы найдете там вдохновение / руководство.

...