QT 4.7.3 編譯mysql驅動

來源:互聯網
上載者:User

解決 mysql 的 Qt 驅動問題

這個問題困擾了我一些時間, 因為 Qt 安裝完後, 沒有帶 mySQL 的驅動, 寫好的程式運行會提示說 “Driver not loaded”。不過還好, 在 src 目錄下可以找到 mysql qt 驅動的原始碼。 後來我用 Qt assistant 上說的方法, 但始終無法產生庫檔案, 總有連結錯誤。 後來google 一下,在 qtcn 上看到他們站長發的一篇文章,才知道是 mysql 預設帶的庫檔案是 ms 格式的, 所以使用 make 的話,ld 程式連結時會失敗。 如果大家使用linux系統,
那麼就只需按 assistant 說的就夠了, 下面 XChinux 也提到了。

解決的辦法他也給出了。轉錄如下:

以下引用引自:http://www.qtcn.org/bbs/read.php?tid=4210&fpage=&toread=&page=1
作者:XChinux

QUOTE:Qt4 OpenSource for mingw中編譯MySQL驅動

mingw-utils包下載:http://www.qtcn.org/download/mingw-utils-0.3.tar.gz

在Qt4的文檔中在Windows下關於怎樣編譯mysql的驅動上面說

CODE:[Copy to clipboard]You need to get the MySQL installation files. Run SETUP.EXE and choose "Custom Install". Install the "Libs & Include Files" Module. Build the plugin as follows (here it is assumed that MySQL is installed in C:\MYSQL):
   cd %QTDIR%\src\plugins\sqldrivers\mysql
   qmake -o Makefile "INCLUDEPATH+=C:\MYSQL\INCLUDE" "LIBS+=C:\MYSQL\LIB\OPT\LIBMYSQL.LIB" mysql.pro
   nmake
If you are not using a Microsoft compiler, replace nmake with make in the line above.

這就是一個容易搞混的地方,上面是使用的libmysql.lib和nmake來編譯的,如果使用的是msvc的編譯器,那上面是沒問題的,但是如果使用的是mingw編譯器,那就會出錯,有undefined reference....等類錯誤字樣。這是因為mingw使用的庫和msvc使用的不同格式的庫而引起的。而mysql只提供了msvc可使用的庫。 qt4 for mingw要想編譯出qsqlmysql庫來,我們先得編譯出mingw需要的libmysql.a這個檔案來,可使用mingw工具來產生。
mingw -utils包裡的reimp命令(如果沒有這個命令的話,可從本帖開頭處給出的地址中下載這個檔案,並把它解壓開後的bin目錄裡的內容拷貝到 mingw的bin目錄下面。mysql安裝的時候預設的安裝路徑中有空格,我們得先把它的include和lib目錄拷貝到沒有空格的路徑下,比如C: \mysql下)

CODE:[Copy to clipboard]cd c:\mysql\lib\opt
reimp -d libmysql.lib
dlltool -k -d libmysql.def -l libmysql.a

如此,這樣我們的命令列為(注意qmake和make):

CODE:[Copy to clipboard]   cd %QTDIR%\src\plugins\sqldrivers\mysql
   qmake -o Makefile "INCLUDEPATH+=C:\MYSQL\INCLUDE" "LIBS+=C:\MYSQL\LIB\OPT\LIBMYSQL.a" mysql.pro
  

如果出現這個,不要緊(保留反斜線字元不提倡使用),繼續執行mingw32-make

這下便會在%QTDIR%\plugins\mysql\debug目錄下面產生libmysql.a, mysql.dll這兩個檔案了。

有一點, 就是下載他給出的mingw-utils-0.3.tar.gz 檔案, 只需要把裡面的 reimp 工具複製到你的 minGW目錄下的bin 裡就可以了,這樣按上面的步驟就可以產生需要的驅動了。 make 結束後, 庫檔案會產生到qt的系統目錄中去。

然後使用mingw32-make release 產生release目錄下的檔案

 

 

聯繫我們

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