MySQL 9.0 C API 开发人员指南  /  MySQL C API 实现

第 2 章 MySQL C API 实现

MySQL C API 是一个基于 C 的 API,用 C 编写的客户端应用程序可以使用它与 MySQL 服务器通信。客户端程序在编译时引用 C API 头文件,并在链接时链接到 C API 库文件 libmysqlclient

要获取构建 C API 客户端程序所需的 C API 头文件和库文件,请安装 MySQL 服务器发行版。

您可以安装包含预构建的 C API 文件的二进制发行版,也可以使用 MySQL 服务器源代码发行版并自行构建 C API 文件。构建 MySQL 服务器也会构建 libmysqlclient;请参阅 从源代码安装 MySQL。它不能单独构建,但使用可选的 -DWITHOUT_SERVER=ON CMake 选项有关。

链接 C API 客户端应用程序时使用的库文件名称取决于库类型和构建发行版的平台。

  • 在 Unix(以及类 Unix)系统上,静态库是 libmysqlclient.a。动态库在大多数 Unix 系统上是 libmysqlclient.so,在 macOS 上是 libmysqlclient.dylib

  • 在 Windows 上,静态库是 mysqlclient.lib,动态库是 libmysql.dll。Windows 发行版还包含 libmysql.lib,这是使用动态库所需的静态导入库。

    Windows 发行版还包含一组调试库。这些库与非调试库具有相同的名称,但位于 lib/debug 库中。使用调试 C 运行时构建的客户端在编译时必须使用调试库。

在 Unix 上,您可能还会看到库名称中包含 _r 的库。在 MySQL 5.5 之前,这些库是作为线程安全(可重入)库与非 _r 库分开构建的。从 5.5 开始,这两个库是相同的,_r 名称是相应非 _r 名称的符号链接。无需使用 _r 库。例如,如果您使用 mysql_config 获取链接器标志,则在所有情况下都可以使用 mysql_config --libs,即使对于线程化的客户端也是如此。无需使用 mysql_config --libs_r.