2013年8月14日 星期三

build database drvier mysql plugin in windows - qt4

env: windows 7

build mysql plugin in windows environment.
很麻煩, 好像只能從 source code 編譯出來, windows 似乎沒有 binary 的版本 。讓我們從 source code 開始吧!

compiler: mingw 4.4.0
我把 mysql 安裝在
C:/MySQL/MySQL Server 5.1/

和文件上有點不同, 我直接修改 mysql.pro, 加入紅色部份。
edit D:\qt-everywhere-opensource-src-4.7.3\src\plugins\sqldrivers\mysql\mysql.pro

TARGET = qsqlmysql
SOURCES = main.cpp
INCLUDEPATH+="C:/MySQL/MySQL Server 5.1/include"
LIBS+="C:/MySQL/MySQL Server 5.1/lib/opt/libmysql.lib"
include(../../../sql/drivers/mysql/qsql_mysql.pri)
include(../qsqldriverbase.pri)


cd D:\qt-everywhere-opensource-src-4.7.3\src\plugins\sqldrivers\mysql\mysql.pro
D:\qt-everywhere-opensource-src-4.7.3\bin\qmake mysql.pro
在重新 make 即可。

D:\qt-everywhere-opensource-src-4.7.3\plugins\sqldrivers
libqsqlmysql4.a
libqsqlmysqld4.a
qsqlmysql4.dllqsqlmysqld4.dll


還沒完, 到這裡的時候, 我做了測試, 發現雖然編譯出 qsqlmysqld4.dll 這些 dll, 但是 qt 在偵測所有的 sql plging drivers 時, 仍然找不到 qmysql driver, 也就是無法 load qsqlmysqld* 這些 dll。

copy C:\MySQL\MySQL Server 5.1\bin\libmySQL.dll (開頭的參考文件似乎有點錯誤) 到 D:\qt-everywhere-opensource-src-4.7.3\bin 下, 這樣使用

QStringList drivers = QSqlDatabase::drivers();

就可看到 QMYSQL, QMYSQL3 這個 mysql driver 了。

接下來就可以開始測試 sql command。

想要 static link 的版本嗎?請參考:
in windows using static link for QT application

1 則留言:

  1. xampp 或是 appserver 是有windows 版的
    可以順便幫你安裝好mysql 以前在摸Dreamwave有稍微用到

    回覆刪除

使用 google 的 reCAPTCHA 驗證碼, 總算可以輕鬆留言了。

我實在受不了 spam 了, 又不想讓大家的眼睛花掉, 只好放棄匿名留言。這是沒辦法中的辦法了。留言的朋友需要有 google 帳號。