QtCreatorでMySQLを使用する方法



  • Qtを使ってMySQLにアクセスしようとしています。

    開発環境:Windows7
    統合開発環境:QtCreator4.8.4
    コンパイラ:minGW

    .proファイルに下記の様にMySWQLのINCLUDEPATHを追加しました。
    INCLUDEPATH += C:\Program Files\MySQL\MySQL Server 5.5\include

    するとビルド時に下記の様なエラーが発生します。

    g++: error: C:\Program: No such file or directory
    g++: error: Files\MySQL\MySQL: No such file or directory
    g++: error: Server: No such file or directory
    g++: error: 5.5\lib\libmysql.lib: No such file or directory
    mingw32-make[1]: *** [debug\MySQLTest02.exe] Error 1
    mingw32-make: *** [debug] Error 2
    11:27:24: プロセス "C:\MinGW\bin\mingw32-make.exe" はコード 2 で終了しました。
    Error while building/deploying project MySQLTest02 (kit: デスクトップ)
    ステップ 'Make' 実行中

    g++: error: C:\Program: No such file or directory と出ているのですが、
    指定したディレクトリは"Program Files"なのですが、"Program"を探しているということは
    スペースの入ったディレクトリ名はダメということなのでしょうか?



  • 質問者です。
    上記の状態から少し進展したので記します。

    ディレクトリやファイル名にスペースが有るような場合はquote関数を使えばよいとQtAssistantに書いておりました。
    結局.proファイルに下記を追加しました。

    INCLUDEPATH += $$quote(C:\Program Files\MySQL\MySQL Server 5.5\include)
    LIBS += $$quote(C:\Program Files\MySQL\MySQL Server 5.5\lib\libmysql.lib)

    ビルドエラーは取れたのですが、
    コンソールで下記のエラーが出てしまいました。

    エラーメッセージ------------------------------------------------------
    QSqlDatabase: QMYSQL driver not loaded
    QSqlDatabase: available drivers: QSQLITE QODBC3 QODBC

    QMYSQLドライバが有りませんと言われていますが、
    C:\Qt\4.8.4\include\QtSql配下にQMYSQLDriverというのが見て取れます。
    何故なのでしょうか?
    どなたか解る方がいらっしゃったらアドバイス下さい。



  • QtでSQLデータベースを使用するときは、通常はデータベースに直接リンクするのではなく、データベースドライバプラグインを通じて行います。
    $QTDIR/plugins/sqldrivers 以下に各データベース用のプラグイン( この場合は qsqlmysql4.dll かな)が必要です。

    Qtがバイナリパッケージが自前でのビルドかは分かりませんが、おそらくこのプラグインはインストールされていないと思います。
    http://qt-project.org/doc/qt-4.8/sql-driver.html#how-to-build-the-mysql-driver-for-mingw-users
    に mingw 用の MySql ドライバのビルド方法がありますので、そちらを参考にドライバのビルドとインストールを試してみてください。


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.