MySQL 8.0 参考手册  / 第 4 章 MySQL 程序  / 4.7 程序开发实用程序  /  4.7.1 mysql_config——编译客户端的显示选项

4.7.1 mysql_config——编译客户端的显示选项

mysql_config为您提供了编译 MySQL 客户端并将其连接到 MySQL 的有用信息。它是一个 shell 脚本,因此只能在 Unix 和类 Unix 系统上使用。

笔记

pkg-config可用作 mysql_config的替代品,用于获取编译器标志或编译 MySQL 应用程序所需的链接库等信息。有关详细信息,请参阅 使用 pkg-config 构建 C API 客户端程序

mysql_config支持以下选项。

  • --cflags

    C 编译器标志,用于查找包含文件和关键编译器标志,并定义编译 libmysqlclient库时使用的。返回的选项与创建库时使用的特定编译器相关,并且可能与您自己的编译器的设置冲突。用于 --include仅包含包含路径的更多可移植选项。

  • --cxxflags

    --cflags,但用于 C++ 编译器标志。

  • --include

    查找 MySQL 包含文件的编译器选项。

  • --libs

    与 MySQL 客户端库链接所需的库和选项。

  • --libs_r

    与线程安全的 MySQL 客户端库链接所需的库和选项。在 MySQL 8.0 中,所有客户端库都是线程安全的,因此不需要使用此选项。该--libs选项可用于所有情况。

  • --plugindir

    默认插件目录路径名,在配置 MySQL 时定义。

  • --port

    默认的 TCP/IP 端口号,在配置 MySQL 时定义。

  • --socket

    默认的 Unix 套接字文件,在配置 MySQL 时定义。

  • --variable=var_name

    显示命名配置变量的值。允许的var_name值为 pkgincludedir(头文件目录)、pkglibdir(库目录)和plugindir(插件目录)。

  • --version

    MySQL 发行版的版本号。

如果不带任何选项调用mysql_config,它会显示它支持的所有选项及其值的列表:

$> mysql_config
Usage: /usr/local/mysql/bin/mysql_config [options]
Options:
  --cflags         [-I/usr/local/mysql/include/mysql -mcpu=pentiumpro]
  --cxxflags       [-I/usr/local/mysql/include/mysql -mcpu=pentiumpro]
  --include        [-I/usr/local/mysql/include/mysql]
  --libs           [-L/usr/local/mysql/lib/mysql -lmysqlclient
                    -lpthread -lm -lrt -lssl -lcrypto -ldl]
  --libs_r         [-L/usr/local/mysql/lib/mysql -lmysqlclient_r
                    -lpthread -lm -lrt -lssl -lcrypto -ldl]
  --plugindir      [/usr/local/mysql/lib/plugin]
  --socket         [/tmp/mysql.sock]
  --port           [3306]
  --version        [5.8.0-m17]
  --variable=VAR   VAR is one of:
          pkgincludedir [/usr/local/mysql/include]
          pkglibdir     [/usr/local/mysql/lib]
          plugindir     [/usr/local/mysql/lib/plugin]

您可以在命令行中使用mysql_config,使用反引号来包含它为特定选项生成的输出。例如,要编译和链接一个 MySQL 客户端程序,使用mysql_config如下:

gcc -c `mysql_config --cflags` progname.c
gcc -o progname progname.o `mysql_config --libs`