gpt4 book ai didi

mysql - MySQL 库中没有初始化函数

转载 作者:行者123 更新时间:2023-11-29 13:28:32 27 4
gpt4 key购买 nike

我已经下载了 MySQL Connector/C driver从官方网站来看,我认为该版本应该是在5.6之后发布的。

然后我显然想使用这个库,所以我编写了一个小应用程序。然而,在链接过程中,我遇到了一个奇怪的链接器错误,说它找不到函数 mysql_library_init()mysql_library_end()

当我使用命令检查库内的函数 nm/usr/lib64/mysql/libmysqlclient.a > ~/Desktop/symbols 时,我确实找不到链接器的函数提及。

但是我找到的函数是mysql_server_initmysql_server_end,它们是according to the documentation ,标记为已弃用。 (里面还有更多功能)

我做错了什么?我使用的是 6.1.2 版本的驱动程序。

最佳答案

问题似乎在于文档位于代码之前。

我是一名 DBA,而不是 C 程序员,尽管我涉足服务器内部。如果 MySQL 服务器源文件中的 include/mysql.h 文件有任何指示,那么 mysql_server_* 函数就是您要查找的函数。

/*
mysql_server_init/end need to be called when using libmysqld or
libmysqlclient (exactly, mysql_server_init() is called by mysql_init() so
you don't need to call it explicitely; but you need to call
mysql_server_end() to free memory). The names are a bit misleading
(mysql_SERVER* to be used when using libmysqlCLIENT). So we add more general
names which suit well whether you're using libmysqld or libmysqlclient. We
intend to promote these aliases over the mysql_server* ones.
*/
#define mysql_library_init mysql_server_init
#define mysql_library_end mysql_server_end

“我们打算在 mysql_server* 别名上推广这些别名。”

显然,他们在文档中推广了它们。

看起来像Bug #65887是关于同样问题的报告,他们从未真正抽出时间做任何事情。

您可能还会发现MariaDB's implementation “用于 MariaDB 和 MySQL”的 C API 是一个可行的、也许更容易获得许可的替代方案。

关于mysql - MySQL 库中没有初始化函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19799199/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com