在Cygwin下构建MySQL ++无法找到MySQL客户端库

时间:2016-12-29 10:52:45

标签: c++ mysql cygwin

我试图在Cygwin下构建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 个答案:

答案 0 :(得分:1)

  

它失败了,因为它无法找到MySQL客户端库。

显然,自上次成功试用以来,Cygwin上的库命名方案发生了变化。

我已经发布了3.2.3版来修复此问题。 (我是MySQL ++的维护者。)

顺便提一下,您链接的GitHub页面只是某人的源代码镜像。 MySQL ++的主页是here