QT数据库驱动和多国语言驱动部署注意事项
用vs2008編譯的QT程序在部署到未安裝QT和vs2008的環(huán)境中時(shí)。經(jīng)常會(huì)出現(xiàn)找不到數(shù)據(jù)庫(kù)驅(qū)動(dòng)及字符亂碼的問(wèn)題。如下圖所示:
我們知道,無(wú)論是數(shù)據(jù)庫(kù)驅(qū)動(dòng)還是語(yǔ)言庫(kù),QT都是以插件形式加載的,默認(rèn)的插件位置在QT安裝目錄下的plugins文件夾下,其中codecs是字符,sqldrivers是數(shù)據(jù)庫(kù)驅(qū)動(dòng)。當(dāng)開(kāi)發(fā)的程序需要部署到非開(kāi)發(fā)環(huán)境中時(shí),需要做的第一件事是:重定義插件目錄。
如上圖紅色框中所示,關(guān)鍵是addLibraryPath這個(gè)靜態(tài)函數(shù),上圖是將插件目錄放在一個(gè)環(huán)境變量指向的路徑下的,也可以寫(xiě)相對(duì)路徑放在當(dāng)前目錄下。這樣,只需要把codecs和sqldrivers目錄放到%CCTV_HOME%\bin下就可以了。注意這樣寫(xiě)的話不需要plugins這一級(jí),除非寫(xiě)成QApplication::addLibraryPath(Path+"/plugins/bin");。
到這里只解決了QT的問(wèn)題,還有vs2008的問(wèn)題。vs2008的運(yùn)行時(shí)環(huán)境包括以下文件:
注意不同平臺(tái)(x86或x64,Release或Debug)需要不同版本的上述文件,文件名雖然一樣,但卻要注意區(qū)分。可以在vs的安裝目錄下找到它們:
這里是值得注意的第二點(diǎn)。這4個(gè)文件,所有你編譯的exe程序,不管有沒(méi)有使用QT,都需要和這4個(gè)文件放在同一目錄下才能順利運(yùn)行。但是如果使用了上文所說(shuō)的QT驅(qū)動(dòng),那么在sqldrivers和codecs目錄下也需要放置一份同樣的文件,否則依然會(huì)報(bào)錯(cuò)找不到數(shù)據(jù)庫(kù)驅(qū)動(dòng)或出現(xiàn)字符亂碼。
第三,如果用到了自己編譯的mysql,那么還需要把自己編譯好的mysql動(dòng)態(tài)庫(kù)放到自己的bin目錄下(不是sqldrivers里面)。
這幾年,遇到上述問(wèn)題不是一兩次的,這次應(yīng)該是“完整解決方案”了。與大家共享。
總結(jié)
以上是生活随笔為你收集整理的QT数据库驱动和多国语言驱动部署注意事项的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Qt vlc视频开发libvlc_new
- 下一篇: 看看那些退役后去特警部队的散打王者的地位