MySQL 8.0 C API Developer Guide
The MySQL C API is a C-based API that client applications written
in C can use to communicate with MySQL Server. Client programs
refer to C API header files at compile time and link to a C API
library file, libmysqlclient
, at link time.
To obtain the C API header and library files required to build C API client programs, install a MySQL Server distribution.
You can install a binary distribution that contains the C API
files pre-built, or you can use a MySQL Server source distribution
and build the C API files yourself. Building MySQL Server also
builds libmysqlclient
; see
Installing MySQL from Source. It cannot be built alone,
but configuring with the optional
-DWITHOUT_SERVER=ON
CMake option is related.
The names of the library files to use when linking C API client applications depend on the library type and platform for which a distribution is built:
On Unix (and Unix-like) systems, the static library is
libmysqlclient.a
. The dynamic library is
libmysqlclient.so
on most Unix systems
and libmysqlclient.dylib
on macOS.
On Windows, the static library is
mysqlclient.lib
and the dynamic library
is libmysql.dll
. Windows distributions
also include libmysql.lib
, a static
import library needed for using the dynamic library.
Windows distributions also include a set of debug libraries.
These have the same names as the nondebug libraries, but are
located in the lib/debug
library. You
must use the debug libraries when compiling clients built
using the debug C runtime.
On Unix, you may also see libraries that include
_r
in the names. Before MySQL 5.5, these were
built as thread-safe (re-entrant) libraries separately from the
non-_r
libraries. As of 5.5, both libraries are
the same and the _r
names are symbolic links to
the corresponding non-_r
names. There is no
need to use the _r
libraries. For example, if
you use mysql_config to obtain linker flags,
you can use mysql_config --libs in all cases,
even for threaded clients. There is no need to use
mysql_config --libs_r.