2011-09-05 78 views
1

我想在一個交叉編譯爲Windows的項目上通過mingw使用libmysqlclient。 爲了鏈接我的程序,我需要「mysqlclient.a」,但我無法得到它。mysqlclient與mingw

我試圖在windows上爲mysql客戶端創建mingw的makefile,但配置步驟失敗。


我最終能夠建立它......在Windows上使用mingw。

步驟如下:

  1. 安裝Cygwin
  2. 安裝包製作,GCC,G ++,在你的cygwin cmake並cygidn
  3. 下載&解壓的libmysql源代碼
  4. 編輯文件中的字符串/ dtoa.c並將dtoa的所有出現替換爲_dtoa之類的其他內容以防止衝突
  5. 將光盤放入軟件包基座
  6. 類型的MinGW的cmake -G 「的Unix Makefile文件」
  7. 使
  8. 使安裝
  9. 編輯C:\ Cygwin的的\ usr \本地\ mysql的\ \包含的mysql.h並添加#include <winsock.h> /* Bug win32 */#define _mysql_h
  10. 你可以讓你的文件在「C:\ Cygwin的的\ usr \本地\ mysql的」

我得到「libmysqlclient.a」和「liblibmysql.dll.a」和我聯繫我的程序與他們,但我仍然得到鏈接器錯誤。怎麼了 ? 但我仍然得到鏈接錯誤!

strings libmysqlclient.a | grep _mysql_ping而接頭抱怨未定義參考`_mysql_ping @ 4'

回答

0

返回結果的MinGW和Cygwin往往不兼容。您必須在100%MinGW環境中構建MySQL客戶端。

+0

你能比「經常」更精確? – hivert

0

使用MinGW,我們鼓勵您使用Windows * .lib文件。

下載並安裝MySQL Connector/C二進制爲您的Windows平臺(32位或64位)

然後進行編譯和鏈接程序:

g++ myprog.cpp \ 
-I"C:\Program Files (x86)\MySQL\MySQL Connector C 6.1\include" \ 
-L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" -lmysql