首先,让我澄清这里的一切都是MariaDB --实际上不涉及MySQL代码。
在Arch中,我运行的是MariaDB服务器和客户机。我安装了mariadb软件包,它是从源代码构建的:
http://ftp.heanet.ie/mirrors/mariadb/mariadb-10.1.18/source/mariadb-10.1.18.tar.gz
这一规定规定:
我有将访问C++的MariaDB应用程序,我认为我也需要mariadb连接器-c,所以我构建了标记v2.3.1
https://github.com/MariaDB/mariadb-connector-c
这一规定规定:
Q1 -
libmysqlclient、libmariadbclient和libmariadb的目的和区别是什么?(忽略差异共享与静态库。)
Q2 -
/usr/include/mysql/mysql.h (来自http://ftp.heanet.ie/mirrors/mariadb/mariadb-10.1.18/source/mariadb-10.1.18.tar.gz)
和
/usr/include/mariadb/mysql.h (来自https://github.com/MariaDB/mariadb-connector-c的标签v2.3.1 at )
它们非常相似,有很多相同的代码,但它们也是不同的。
我遇到了一个/usr/include/mysql/mysql.h定义:
const char * STDCALL mysql_error(MYSQL * myql);但是/usr/include/mariadb/mysql.h定义:
char * STDCALL mysql_error(MYSQL *mysql);(请注意返回值上缺少的const。)
在这一点上,我感到非常困惑,为什么每个函数都声明相同的函数,为什么它们是不同的,我应该使用这些函数等等。
注意,我知道mariadb++,但它的最后一次提交是3.5年前,所以我假装它不存在。
发布于 2016-10-06 07:55:05
1) libmysql和libmariadb ( Connector/C )之间的主要区别是许可: libmysql是在GPL许可下授权的,而Connector/C是在限制较少的LGPL许可下授权的,这将允许使用它的封闭源应用程序。
MariaDB连接器/C2.3 (libmariadb=支持来自libmysql的所有api调用和公共结构。Version3.0(目前) beta提供了许多没有在libmysql中实现的新功能。
MariaDB服务器版本10.2 (beta) Connector/C3.0的开始将取代服务器包中的libmysql。
( 2)这是一个小错误,已经修复了
https://stackoverflow.com/questions/39822379
复制相似问题