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

问题描述:

我试图在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 ++吗?

它因为找不到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)。 –