2010-05-26 144 views
0

在運行「sudo port install mysqlxx + universal」之前,我安裝了mysql5的通用變體。Macports編譯MySQL ++失敗

... 檢查用C數學函數-lm是否需要...沒有

檢查是否需要-lsocket ......沒有

檢查是否需要-lnsl ...沒有

檢查MySQL庫目錄... /選擇/ local/lib目錄/ MYSQL5/MySQL的

檢查MySQL的include目錄... /選擇/本地/包括/ MYSQL5/MySQL的

檢查,如果我們可以鏈接到直接的MySQL C API庫......沒有

檢查zlib.h可用性...是

檢查zlib.h存在...是

檢查的zlib .H ...是

檢查gzread在-lz ...是

檢查是否添加-lz會讓MySQL的C API鏈接成功......沒有

配置:錯誤:無法鏈接到MySQL客戶端庫!

+0

應該在serverfault – 2010-05-26 20:05:40

+1

應該報告給該端口的維護者。同時,由於您願意從源代碼編譯,爲什麼不從http://tangentsoft.net/mysql++/下載tarball並根據包含的指示構建它? – 2010-05-27 00:32:12

+0

@Warren Young:你爲什麼不把你的評論轉移到答案部分..這是我想知道的答案,如果這是我的問題? – lexu 2010-05-27 05:30:21

回答

0

我懷疑這裏發生了什麼事,你正在運行雪豹。在以前的OS X版本中,默認的C++編譯器默認構建了32位可執行文件,但在Snow Leopard中將其更改爲64位。這可能會導致與MySQL C API庫的鏈接問題,如果它不是作爲支持64位和32位可執行文件的通用庫構建的。

圍繞這個問題有很多方法,但是我所知道的大多數都不能用於MacPorts,或者我不知道如何讓它們工作。我已經在Mac OS X的MySQL ++ README中添加了一個部分,您可以在線閱讀here

也許你可以想出如何將這些解決方案調整到MacPorts構建系統。像這樣的東西可能會奏效:

CFLAGS=-m32 CXXFLAGS=-m32 LDFLAGS=-m32 sudo port install mysqlxx +universal 

這取決於這些環境變量,使其通過sudoport障礙。你可能必須變得更加棘手。例如:

sudo -s 
CFLAGS=-m32 CXXFLAGS=-m32 LDFLAGS=-m32 port install mysqlxx +universal 

正如我上面所說,從源代碼tarball構建可能是最簡單的。