在Cygwin下构建MySQL ++无法找到MySQL客户端库
问题描述:
我试图在Cygwin下构建MySQL ++。在Cygwin下构建MySQL ++无法找到MySQL客户端库
之前,你可以构建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。
我终于下载了MySQL源代码并构建它来生成'.dll'库。然后,我可以毫无问题地构建MySQL ++。不过,我会尝试下载你的新版本。我会告诉你。谢谢。 – Albert
它的工作,非常感谢。但是,我仍然遇到了当我运行可执行文件时无法找到'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
这就是[只是Windows](https://msdn.microsoft.com/en-us/library/7d83bc18.aspx)。 –