QT的驅動編譯

來源:互聯網
上載者:User

http://heweiding155.iteye.com/blog/1393894

qt由於授權許可的限制,Qt的開源版本沒有提供所有資料庫的驅動程式。免費下載的中只含有QSQLITE也就是SQLite的驅動程式,要想與mysql或oracle等串連需要自己編譯其驅動。

由於種種問題,經曆各種重裝,各種失敗,本人用了兩天才成功用qt串連上了mysql資料庫。(看網上其他教程都是分分鐘搞定  -_-!!) 在這裡也寫一下自己的經曆。

下邊開始本文:

一.下載mysql http://dev.mysql.com/downloads/ 目前最新版本5.5。

二.安裝mysql  安裝時不能選擇Typical型,這樣會缺少庫檔案(include和lib檔案夾)。啥都不管直接選擇FUll型。

三.將mysql安裝目錄下的include和lib兩個檔案夾拷貝到qt\4.7.4\src\plugins\sqldrivers\mysql下。可以自己建立一個目錄如mysqllib。

  四.修改mysql.pro檔案,在第二行添加如下內容

      INCLUDEPATH +="./mysqllib/include" 

LIBS+="./mysqllib/lib/libmysql.lib"

    五.將QT的bin目錄和mingw的目錄都添加到環境變數的path中。

    六.運行qt 4.7.4 Command Prompt 輸入以下命令(路徑自己注意修改)

cd qt\4.7.4\src\plugins\sqldrivers\mysql

qmake 

mingw32-make release

mingw32-make debug

       執行qmake後沒有返回結果,只是在mysql目錄下產生了debug和release的makefile檔案Makefile.Debug和Makefile.Release。

       全部執行完後,將release下的libqsqlmysql4.a,qsqlmysql4.dll和debug下的libqsqlmysqld4.a,libqsqlmysqld4.dll 拷貝至

    QtSDK\Desktop\Qt\4.7.4\mingw\plugins\sqldrivers  

目錄下

   七.將mysql的庫檔案libmysql.dll拷貝到QtSDK\Desktop\Qt\4.7.4\mingw\bin 目錄下

接下來運行一個例子看驅動是否裝好:

建立一個qt gui 控制台項目SQLtest

在SQLtest.pro中加入QT  +=sql

接著修改main.cpp如下

 

#include<QtCore/QCoreApplication>
#include<QtSql>
intmain(intargc,char*argv[])
{
QCoreApplicationa(argc,argv);
qDebug()<<"Availabledrivers:";
QStringListdrivers=QSqlDatabase::drivers();
foreach(QStringdriver,drivers)
qDebug()<<"\t"<<driver;
qDebug()<<"End";
returna.exec();
}
執行程式輸出為:
Available drivers:
"QSQLITE"
"QMYSQL3"
"QMYSQL"
EndVS編寫Qt介面程式如何不出現控制台

在項目解決方案的屬性頁面裡,連接器->系統->子系統裡選擇<windows>,

 

這樣再重建解決方案,重新編譯就不會出現煩人的控制台了

 

但是這個控制台在調試的時候還是非常方便的。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.