27.7.3.2 使用 pkg-config 构建 C APIClient 端程序

MySQL 发行版包含mysqlclient.pc文件,该文件提供有关 MySQL 配置的信息,供 pkg-config 命令使用。这使得 pkg-config 可以替代mysql_config来获取信息,例如编译 MySQL 应用程序所需的编译器标志或链接库。例如,以下几对命令是等效的:

mysql_config --cflags
pkg-config --cflags mysqlclient

mysql_config --libs
pkg-config --libs mysqlclient

最后的 pkg-config 命令产生用于动态链接的标志。要产生用于静态链接的标志,请使用以下命令:

pkg-config --static --libs mysqlclient

在某些平台上,带有和不带有--static的输出可能是相同的。

Note

如果 pkg-config 找不到 MySQL 信息,则可能有必要将PKG_CONFIG_PATH环境变量设置为mysqlclient.pc文件所在的目录,默认情况下,该目录通常是 MySQL 库目录下的pkgconfig目录。例如(适当调整位置):

# For sh, bash, ...
export PKG_CONFIG_PATH=/usr/local/mysql/lib/pkgconfig
# For csh, tcsh, ...
setenv PKG_CONFIG_PATH /usr/local/mysql/lib/pkgconfig

可以使用INSTALL_PKGCONFIGDIR CMake 选项控制mysqlconfig.pc的安装位置。参见第 2.9.7 节“ MySQL 源配置选项”

--variable选项采用配置变量名称并显示变量值:

# installation prefix directory
pkg-config --variable=prefix mysqlclient
# header file directory
pkg-config --variable=includedir mysqlclient
# library directory
pkg-config --variable=libdir mysqlclient

要查看使用--variable选项可以显示哪些变量值 pkg-config ,请使用以下命令:

pkg-config --print-variables mysqlclient

您可以在命令行中使用 pkg-config 并使用反引号将其为特定选项生成的输出包括在内。例如,要编译和链接 MySQLClient 端程序,请使用 pkg-config ,如下所示:

gcc -c `pkg-config --cflags mysqlclient` progname.c
gcc -o progname progname.o `pkg-config --libs mysqlclient`