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`