Windows下編譯Qt的Mysql驅動(詳細測試可用)

來源:互聯網
上載者:User

本文只適用於Windows平台mingw編譯器

系統:Windows XP
Qt版本:4.8.0
Qt Creator版本:2.4.1 

安裝路徑:
Qt -> D:\Qt\4.8.0
Qt Creator -> D:\Qt\qtcreator-2.4.1
mingw -> D:\Qt\qtcreator-2.4.1\mingw

1.配置環境變數:

到“我的電腦->屬性->進階->環境變數->系統變數”中編輯Path,添加:
;D:\Qt\4.8.0\bin;D:\Qt\qtcreator-2.4.1\bin;D:\Qt\qtcreator-2.4.1\mingw\bin
確定;為了讓環境變數生效,如果配置環境變數之前已經開啟cmd,要重新開啟一個新的cmd視窗。

2.下載mysql

官網www.mysql.com下載,非安裝包的檔案名稱類似這種格式:mysql-5.5.29-win32.zip
我下載的安裝包:http://cdn.mysql.com/Downloads/MySQL-5.5/mysql-5.5.29-win32.zip
只需要mysql裡面的lib和include,所以這裡我提供一個精簡包,:mysql_lib_include.rar
解壓到D:\

3.下載mingw-utils-0.3.tar.gz,

解壓出來,將bin檔案夾裡面的reimp.exe拷貝到D:\Qt\qtcreator-2.4.1\mingw\bin目錄,不拷貝也行,調用reimp手動添加絕對路徑。

4.編譯驅動

開啟cmd,執行以下命令:

(1)轉換libmysql格式

d:
cd d:\mysql\lib
reimp -d libmysql.lib
dlltool -k -d libmysql.def -l libmysql.a

(2)編譯qt的mysql驅動

cd d:\qt\4.8.0\src\plugins\sqldrivers\mysqlqmake "CONFIG+=release" -o Makefile "INCLUDEPATH+=d:/mysql/include" "LIBS+=d:/mysql/lib/libmysql.a" mysql.promingw32-makeqmake "CONFIG+=debug" -o Makefile "INCLUDEPATH+=d:/mysql/include" "LIBS+=d:/mysql/lib/libmysql.a" mysql.promingw32-make

5.拷貝mysql驅動

編譯完成後,開啟D:\Qt\4.8.0\src\plugins\sqldrivers\mysql目錄,可以看到release和debug目錄,分別從release和debug目錄中拷貝以下4個檔案到D:\Qt\4.8.0\plugins\sqldrivers:
qsqlmysql4.dll
libqsqlmysql4.a
qsqlmysqld4.dll
libqsqlmysqld4.a

6.拷貝mysql動態庫(重要)(1)本機運行

拷貝D:\mysql\lib\libmysql.dll檔案到D:\Qt\4.8.0\bin

(2)沒有mysql的電腦

若要發布應用程式,要跟著libmysql.dll一塊發布,與應用程式同級目錄。

7.測試mysql可用性

加入已經存在mysql服務,那麼編寫以下代碼測試:

(1).測試是否有驅動

QStringList driverList = QSqlDatabase::drivers();qDebug() << driverList;//運行結果:("QSQLITE", "QMYSQL3", "QMYSQL", "QODBC3", "QODBC")?

如果存在QMYSQL和QMYSQL3就是正確的
(2).測試mysql是否可用

QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");db.setHostName("192.168.1.23");db.setDatabaseName("testsql");db.setUserName("root");db.setPassword("root");bool ok = db.open();qDebug() << ok;//運行結果:true

若為true,說明串連成功

8.提供編譯成功的mysql驅動

我的版本上面已經寫了:Windows, Qt4.8, mingw
:qt4.8_mingw_qsqlmysql4.rar 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.