これは少し古いですが、これを機能させるために同様の問題がありました。これも Google 経由で見つけたので、同じ問題に直面している他の人がいるかもしれません。
ところで: $QTDIR は、構成に合わせて変更することを意図しています。
Qt 5.7.1、バージョン 11.1 の IBM の DB2 Express-C エディション、および x64 に対してコンパイルする Visual Studio 2015 Update 3 を使用しました。手順は、対応する私のブログ投稿から取得されます。
すべてがインストールされていることを確認してください。次のパスを使用します。
C:\Qt\5.7\msvc2015_64\bin: location of the build tool qmake
C:\Qt\5.7\Src: location of Qt's source code (default location when the sources are fetched with the maintenance tool)
C:\Program Files\IBM\SQLLIB: location inside IBM's install directory where the sql library is located
別のパスを使用する場合は、次のビルド手順で適宜調整してください。
Qt 5.7.1 にはバグがあり (Qt 5.8.0 で修正されたようです)、ソースを調整する必要があります。ファイルC:\Qt\5.7\Src\qtbase\src\sql\drivers\db2\qsql_db2.cpp
を開き、行 1190 を にd->hEnv = reinterpret_cast<SQLHANDLE>(env);
、行 1191 を に変更します。d->hDbc = reinterpret_cast<SQLHANDLE>(con);
管理者権限で Visual Studio のコマンド ライン プロンプト (VS2015 x64 Native Tools-Eingabeaufforderung öffnen) を開きます。
cd
ディレクトリへC:\Qt\5.7\Src\qtbase\src\plugins\sqldrivers\db2
コマンドを実行しますC:\Qt\5.7\msvc2015_64\bin\qmake "INCLUDEPATH+=C:/progra~1/IBM/SQLLIB/include" "LIBS+=C:/progra~1/IBM/SQLLIB/lib/db2cli.lib"
4.1. DB2 を別のディレクトリーにインストールした場合は、パスを調整します。
4.2. 必ず置き換えProgram Files
てくださいprogra~1
(そうしないと、スペースが原因で問題が発生する可能性があります)
を実行C:\Qt\5.7\Src\qtbase\src\plugins\sqldrivers\db2>nmake
してライブラリをビルドします。いくつかの警告が表示される場合がありますが、それでも動作するはずです。成功した場合、生成されたライブラリは次の場所にあります。C:\Qt\5.7\Src\qtbase\plugins\sqldrivers
インストールを実行C:\Qt\5.7\Src\qtbase\src\plugins\sqldrivers\db2>nmake
して、作成されたライブラリがコピーされるようにしますC:\Qt\5.7\msvc2015_64\plugins\sqldrivers
Qt Creator を起動し、sqlbrowser サンプル プロジェクトを開き、ビルドして実行します。成功した場合は、リストから QDB2 ドライバーを選択してデータベースに接続できるはずです。