MySQL distributions contain a mysqlclient.pc
file that provides information about MySQL configuration for use
by the pkg-config command. This enables
pkg-config to be used as an alternative to
mysql_config for obtaining information such as
compiler flags or link libraries required to compile MySQL
applications. For example, the following pairs of commands are
equivalent:
mysql_config --cflags
pkg-config --cflags mysqlclient
mysql_config --libs
pkg-config --libs mysqlclient
The last pkg-config command produces flags for dynamic linking. To produce flags for static linking, use this command:
pkg-config --static --libs mysqlclient
On some platforms, the output with and without
--static
might be the same.
If pkg-config does not find MySQL
information, it might be necessary to set the
PKG_CONFIG_PATH
environment variable to the
directory in which the mysqlclient.pc
file
is located, which by default is usually the
pkgconfig
directory under the MySQL library
directory. For example (adjust the ___location appropriately):
# For sh, bash, ...
export PKG_CONFIG_PATH=/usr/local/mysql/lib/pkgconfig
# For csh, tcsh, ...
setenv PKG_CONFIG_PATH /usr/local/mysql/lib/pkgconfig
The mysqlconfig.pc
installation ___location
can be controlled using the
INSTALL_PKGCONFIGDIR
CMake option. See
MySQL Source-Configuration Options.
The --variable
option takes a configuration
variable name and displays the variable value:
# installation prefix directory
pkg-config --variable=prefix mysqlclient
# header file directory
pkg-config --variable=includedir mysqlclient
# library directory
pkg-config --variable=libdir mysqlclient
To see which variable values pkg-config can
display using the --variable
option, use this
command:
pkg-config --print-variables mysqlclient
You can use pkg-config within a command line using backticks to include the output that it produces for particular options. For example, to compile and link a MySQL client program, use pkg-config as follows:
gcc -c `pkg-config --cflags mysqlclient` progname.c
gcc -o progname progname.o `pkg-config --libs mysqlclient`