2016-12-29 166 views
0

我試圖在Cygwin下構建MySQL ++。在Cygwin下構建MySQL ++無法找到MySQL客戶端庫

根據its documentation

之前,你可以構建MySQL ++,您需要安裝
的libmysqlclient-devel包與Cygwin的setup.exe文件。

所以,我安裝了這個包和它所需的包。創建的唯一庫(因爲你可以看到in this link):

2016-11-10 08:59  702424 usr/lib/libmysqlclient.dll.a 
2016-11-10 09:16   0 usr/lib/libmysqlclient_r.dll.a -> libmysqlclient.dll.a 

然後我跑./configure生成一個Makefile

但是,它失敗了,因爲它找不到MySQL客戶端庫。該configure腳本說:

checking for MySQL library directory... configure: error: Didn't find 
mysqlclient library in '/usr/lib64 /usr/lib /usr/lib64/mysql 
/usr/lib/mysql /usr/local/lib64 /usr/local/lib /usr/local/lib/mysql 
/usr/local/mysql/lib /usr/local/mysql/lib/mysql /usr/mysql/lib/mysql 
/opt/mysql/lib /opt/mysql/lib/mysql /sw/lib /sw/lib/mysql' 

挖入configure文件,我可以看到:

do 
    if test -d "$m" && \ 
     (test -f "$m/lib$MYSQL_C_LIB_NAME.so" || \ 
     test -f "$m/lib$MYSQL_C_LIB_NAME.a") 
    then 
     MYSQL_C_LIB_DIR=$m 
     break 
    fi 
done 

因此,它看起來對共享庫或靜態庫,但libmysqlclient-devel沒有安裝這類原因,只有一個導入庫(dll.a)。

儘管如此,MySQL客戶端庫仍然有效。我可以運行一個簡單的C程序來連接和檢索我的MySQL服務器上的數據,標記爲:-I/usr/include/mysql -L/usr/lib -lmysqlclient,它可以很好地工作。

那麼,有什麼提示?你知道如何在沒有從MySQL源代碼構建MySQL客戶端庫的情況下構建MySQL ++嗎?

回答

1

它因爲找不到MySQL客戶端庫而失敗。

顯然自從上次成功嘗試Cygwin後,庫命名方案發生了變化。

我已經發布了3.2.3版來解決這個問題。 (我是MySQL ++的維護者)。

順便提一句,你鏈接到的GitHub頁面只是源代碼的鏡像。 MySQL ++的主頁是here

+0

我終於下載了MySQL源代碼並構建它來生成'.dll'庫。然後,我可以毫無問題地構建MySQL ++。不過,我會嘗試下載你的新版本。我會告訴你。謝謝。 – Albert

+0

它的工作,非常感謝。但是,我仍然遇到了當我運行可執行文件時無法找到'cygmysqlpp-3.dll'的問題。它被編譯爲:'g ++ -o testConnection testConnection.cpp -I/usr/local/include/mysql ++ -L/usr/local/lib -lmysqlpp $(/ usr/bin/mysql_config --cflags --libs)'。使其工作的唯一方法是將'.dll'複製到可執行的相同路徑中。我猜這是在cygwin下運行的正常行爲,不是嗎? – Albert

+0

這就是[只是Windows](https://msdn.microsoft.com/en-us/library/7d83bc18.aspx)。 –