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