前天剛裝了個Qt4for windows,發現安裝的時候MySQL等數據庫插件都沒有安裝,像Qt X11版一樣,都需要自己安裝這些插件。
在Qt的安裝目錄C:\Qt4.1.2\下,有個src目錄,進入plugins\sqldrivers\mysql,可以看到兩個文件,main.cpp和mysql.pro,很顯然要用qmake來完成編譯、生成目標。
編 譯前,首先保證依賴的MySQL頭文件和庫文件正確。首先MySQL安裝目錄下的include中的所有文件拷到qmake時能找到的目錄下,接著從 lib/opt目錄下拷出libmysql.a,其實lib/opt下只有libmysql.lib和libmysql.dll,從網上搜了一下找到一個 方法從libmysql.dll生成libmysql.a:
1 、安裝好MySQL (如果不愿意安裝,找個libmySQL.dll文件也可以)
2、下載Pexports工具
3、轉換操作: pexports libmysql.dll > libmysql.def
4、使用MinGW的 dlltool轉換成為libmysql.a文件。dlltool --input-def libmysql.def --dllname libmysql.dll --output-lib libmysql.a -k
5、嘗試是否成功:
將生成的libmysql.a 拷到qmake的lib搜索路徑下后在plugins\sqldrivers\mysql目錄下做:
qmake -project
qmake
make
如果再出現象mysql_connect@xx (xx是數字)的錯誤提示。就執行第6步。
6、修改libmysql.def文件,給mysql_connect加上@xx,即mysql_connect@xx
7、重做第4步
8、然后嘗試第5步,如果還是出現錯誤提示。就作第6步。一直到沒有錯誤為止。
最后C:\Qt4.1.2\plugins\sqldrivers下將會生成需要的libqsqlmysql.a和qsqlmysql.dll。
找了一個測試文件,通過。
#include<QtSql>
#include<QtGui>
boolcreateConnection(){
QSqlDatabasedb
=
QSqlDatabase::addDatabase(
"
QMYSQL
"
)
;
db.setHostName(
"
localhost
"
)
;
db.setDatabaseName(
"
test
"
)
;
db.setUserName(
"
test
"
)
;
db.setPassword(
""
)
;
if(!db.open()){
QMessageBox::critical(
0
,
QObject::tr(
"
DatabaseError
"
)
,
db.lastError().text())
;
returnfalse
;
}
QSqlQueryquery
;
//query.exec(
"
insertintobookvalues(3,'title','author')
"
)
;
query.exec(
"
selecttitle,authorfrombook
"
)
;
while(query.next()){
QStringtitle
=
query.value(
0
).toString()
;
QStringauthor
=
query.value(
1
).toString()
;
QMessageBox::critical(
0
,
title
,
author)
;
}
returntrue
;
}
intmain(intargc
,
char**argv){
QApplicationapp(argc
,
argv)
;
if(!createConnection()){
return
1
;
}
returnapp.exec()
;
}
原文:http://www.blogjava.net/felicity/archive/2006/08/28/66280.html
國內最棒的Google Android技術社區(eoeandroid),歡迎訪問!
《銀河系列原創教程》 發布
《Java Web開發速學寶典》 出版,歡迎定購
在Qt的安裝目錄C:\Qt4.1.2\下,有個src目錄,進入plugins\sqldrivers\mysql,可以看到兩個文件,main.cpp和mysql.pro,很顯然要用qmake來完成編譯、生成目標。
編 譯前,首先保證依賴的MySQL頭文件和庫文件正確。首先MySQL安裝目錄下的include中的所有文件拷到qmake時能找到的目錄下,接著從 lib/opt目錄下拷出libmysql.a,其實lib/opt下只有libmysql.lib和libmysql.dll,從網上搜了一下找到一個 方法從libmysql.dll生成libmysql.a:
1 、安裝好MySQL (如果不愿意安裝,找個libmySQL.dll文件也可以)
2、下載Pexports工具
3、轉換操作: pexports libmysql.dll > libmysql.def
4、使用MinGW的 dlltool轉換成為libmysql.a文件。dlltool --input-def libmysql.def --dllname libmysql.dll --output-lib libmysql.a -k
5、嘗試是否成功:
將生成的libmysql.a 拷到qmake的lib搜索路徑下后在plugins\sqldrivers\mysql目錄下做:
qmake -project
qmake
make
如果再出現象mysql_connect@xx (xx是數字)的錯誤提示。就執行第6步。
6、修改libmysql.def文件,給mysql_connect加上@xx,即mysql_connect@xx
7、重做第4步
8、然后嘗試第5步,如果還是出現錯誤提示。就作第6步。一直到沒有錯誤為止。
最后C:\Qt4.1.2\plugins\sqldrivers下將會生成需要的libqsqlmysql.a和qsqlmysql.dll。
找了一個測試文件,通過。

















































原文:http://www.blogjava.net/felicity/archive/2006/08/28/66280.html
國內最棒的Google Android技術社區(eoeandroid),歡迎訪問!
《銀河系列原創教程》 發布
《Java Web開發速學寶典》 出版,歡迎定購
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
