2010-05-26 61 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构建可能是最简单的。