2年前に静的ライブラリに依存するQt構成でQSqlDatabaseオブジェクトを使用してサンプルプログラムを作成しました。コンパイルは期待どおりに実行されました。昨年、共有ライブラリを使用して構成を再構築しましたが、次のエラーが発生します。
エラーは次のとおりです。
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ライブラリを表示させるために何が欠けていますか?
また、ヘッダーファイルとライブラリディレクトリを指定した場合でも、ライブラリを指定する必要がありますか?