MySQL Connector/C++ 开发者指南  /  从源代码安装 Connector/C++  /  Connector/C++ 源代码配置选项

4.4 Connector/C++ 源代码配置选项

Connector/C++ 识别本节中描述的 CMake 选项。

表 4.1 Connector/C++ 源代码配置选项参考

格式 描述 默认值
BUILD_STATIC 是否构建静态库 OFF
BUNDLE_DEPENDENCIES 是否将外部依赖库与连接器捆绑在一起 OFF
CMAKE_BUILD_TYPE 要生成的构建类型 Debug
CMAKE_INSTALL_DOCDIR 文档安装目录
CMAKE_INSTALL_INCLUDEDIR 头文件安装目录
CMAKE_INSTALL_LIBDIR 库安装目录
CMAKE_INSTALL_PREFIX 安装基础目录 /usr/local
MAINTAINER_MODE 仅供内部使用 OFF
MYSQLCLIENT_STATIC_BINDING 是否链接到共享 MySQL 客户端库 ON
MYSQLCLIENT_STATIC_LINKING 是否静态链接到 MySQL 客户端库 OFF
MYSQL_CONFIG_EXECUTABLE mysql_config 程序的路径 ${MYSQL_DIR}/bin/mysql_config
MYSQL_DIR MySQL Server 安装目录
STATIC_MSVCRT 使用静态运行时库
WITH_BOOST Boost 源代码目录 system
WITH_DOC 是否生成 Doxygen 文档 OFF
WITH_JDBC 是否构建旧版 JDBC 库 OFF
WITH_LZ4 LZ4 源代码目录
WITH_MYSQL MySQL Server 源代码目录 system
WITH_PROTOBUF Protobuf 源代码目录
WITH_SSL SSL 源代码目录 system
WITH_ZLIB ZLIB 源代码目录
WITH_ZSTD ZSTD 源代码目录

  • -DBUILD_STATIC=bool

    默认情况下,会构建动态(共享)库。如果启用此选项,则会构建静态库。

  • -DBUNDLE_DEPENDENCIES=bool

    这是一个用于创建 Connector/C++ 发行版软件包的内部选项。

  • -DCMAKE_BUILD_TYPE=type

    要生成的构建类型

    • Debug: 禁用优化并生成调试信息。这是默认设置。

    • Release: 启用优化。

    • RelWithDebInfo: 启用优化并生成调试信息。

  • -DCMAKE_INSTALL_DOCDIR=dir_name

    相对于 CMAKE_INSTALL_PREFIX 的文档安装目录。如果未指定,则默认安装在 CMAKE_INSTALL_PREFIX 中。

    此选项要求启用 WITH_DOC

    此选项是在 Connector/C++ 8.0.14 中添加的。

  • -DCMAKE_INSTALL_INCLUDEDIR=dir_name

    相对于 CMAKE_INSTALL_PREFIX 的头文件安装目录。如果未指定,则默认值为 include

    此选项是在 Connector/C++ 8.0.14 中添加的。

  • -DCMAKE_INSTALL_LIBDIR=dir_name

    相对于 CMAKE_INSTALL_PREFIX 的库安装目录。如果未指定,则默认值为 lib64lib

    此选项是在 Connector/C++ 8.0.14 中添加的。

  • -DCMAKE_INSTALL_PREFIX=dir_name

    安装基础目录(Connector/C++ 安装位置)。

  • -DMAINTAINER_MODE=bool

    这是一个用于创建 Connector/C++ 发行版软件包的内部选项。它是在 Connector/C++ 8.0.12 中添加的。

  • -DMYSQLCLIENT_STATIC_BINDING=bool

    是否链接到共享 MySQL 客户端库。此选项仅在禁用 MYSQLCLIENT_STATIC_LINKING 以启用 MySQL 客户端库的动态链接时使用。在这种情况下,如果启用 MYSQLCLIENT_STATIC_BINDING(默认值),则 Connector/C++ 将链接到共享 MySQL 客户端库。否则,将加载共享 MySQL 客户端库并在运行时映射。

    此选项仅适用于构建旧版 JDBC 连接器(即仅当启用 WITH_JDBC 时)。它是在 Connector/C++ 8.0.16 中添加的。

  • -DMYSQLCLIENT_STATIC_LINKING=bool

    是否静态链接到 MySQL 客户端库。默认值取决于您要构建的旧版 JDBC 连接器

    • 从 Connector/C++ 8.0.33 开始,默认值为 OFF(使用客户端库的动态链接)。启用此选项将禁用客户端库的动态链接。

    • 对于 Connector/C++ 8.0.16 到 8.0.32,默认值为 ON(使用客户端库的静态链接)。禁用此选项将启用客户端库的动态链接。 CMake 会在配置时验证当前编译器和标准库是否可以构建而不会出现错误。

    此选项仅适用于构建旧版 JDBC 连接器(即仅当启用 WITH_JDBC 时)。它是在 Connector/C++ 8.0.16 中添加的。

  • -DMYSQL_CONFIG_EXECUTABLE=file_name

    指向 mysql_config 程序的路径。

    在非 Windows 系统上,CMake 会检查是否设置了 MYSQL_CONFIG_EXECUTABLE。如果没有,CMake 会尝试在默认位置找到 mysql_config

    此选项仅适用于构建旧版 JDBC 连接器(即仅当启用 WITH_JDBC 时)。

  • -DMYSQL_DIR=dir_name

    MySQL 安装目录。

    此选项仅适用于构建旧版 JDBC 连接器(即仅当启用 WITH_JDBC 时)。

  • -DSTATIC_MSVCRT=bool

    (仅限 Windows)使用静态运行时库(/MT* 编译器选项)。如果您使用 Connector/C++ 的代码也使用静态运行时库,则可能需要此选项。

  • -DWITH_BOOST={system|path_name}

    此选项指定在使用外部依赖项编译 Connector/C++ 时要使用哪个 BOOST 头文件。要使用的选项值

    • system: 使用系统 BOOST 头文件。

    • path_name 是要使用的文件的路径名。

    为了与 CMake 约定保持一致,可以使用 BOOST_DIRBOOST_ROOT_DIR 代替 WITH_BOOST 来指示依赖项的基本位置。作为一种隐含 WITH_BOOST 选项(无需显式指定)的替代方案,可以使用 BOOST_INCLUDE_DIR 来提供头文件位置,而不是从 BOOST_ROOT_DIR 值中推导出该位置。

    此选项仅适用于构建旧版 JDBC 连接器(即仅当启用 WITH_JDBC 时)。

  • -DWITH_DOC=bool

    是否启用生成 Doxygen 文档。从 Connector/C++ 8.0.16 开始,启用此选项还会导致 all 目标构建 Doxygen 文档。

  • -DWITH_JDBC=bool

    是否构建旧版 JDBC 连接器。此选项默认情况下处于禁用状态。如果启用,Connector/C++ 8.0 应用程序可以使用旧版 JDBC API,就像 Connector/C++ 1.1 应用程序一样。

  • -DWITH_LZ4={system|path_name}

    此选项指定在使用外部依赖项编译 Connector/C++ 时要使用哪个 LZ4 安装。要使用的选项值

    • system: 使用系统 LZ4 位置。

    • path_name 是要使用的安装位置的路径名。

    为了与 CMake 约定保持一致,可以使用 LZ4_DIRLZ4_ROOT_DIR 代替 WITH_LZ4 来指示依赖项的基本位置。

    为了隐含 WITH_LZ4 选项,但更细致地指定安装目录,可以使用 LZ4_INCLUDE_DIRLZ4_LIB_DIR 来指示头文件(或库)位置,而不是从 LZ4_ROOT_DIR 值中推导出该位置。为了指定要链接的外部库列表,可以使用 LZ4_LIBRARY 代替 WITH_LZ4 选项。

    如果您同时指定了 LZ4_LIBRARYLZ4_LIB_DIR,则 LZ4_LIB_DIR 将用作查找库文件时的附加前缀,LZ4_LIBRARY 应相对于该前缀。在 Windows 上,LZ4_LIBRARY 应指向 DLL 的导入库。

  • -DWITH_MYSQL={system|path_name}

    MySQL 源代码安装位置。当您指定此选项时,客户端库会静态链接,除非您还请求 MYSQLCLIENT_STATIC_LINKING=OFF。要使用的选项值

    • system: 使用系统 MYSQL 位置。

    • path_name 是要使用的安装位置的路径名。

    此选项仅适用于构建旧版 JDBC 连接器(即仅当启用 WITH_JDBC 时)。

    为了与 CMake 约定保持一致,可以使用 MYSQL_DIRMYSQL_ROOT_DIR 来代替 WITH_MYSQL 指示依赖项的基本位置。

    为了隐式地使用 WITH_MYSQL 选项,但同时更细致地指定安装目录,可以使用 MYSQL_INCLUDE_DIRMYSQL_LIB_DIR 指示头文件(或库)的位置,而不是从 MYSQL_ROOT_DIR 值中推断出来。 要指定要链接的外部库列表,请使用 MYSQL_LIBRARY 代替 WITH_MYSQL 选项。

    如果同时指定 MYSQL_LIBRARYMYSQL_LIB_DIR,那么 MYSQL_LIB_DIR 将在查找库文件时用作附加前缀,而 MYSQL_LIBRARY 应该相对于该前缀。 在 Windows 上,MYSQL_LIBRARY 应该指向 DLL 的导入库。

  • -DWITH_PROTOBUF={system|path_name}

    此选项指定在使用外部依赖项编译 Connector/C++ 时使用哪个 Protobuf 安装。 尽管 Connector/C++ 二进制包中的库仍然静态链接到 Protobuf,但使用此选项可以从外部源代码构建一个动态链接到 Protobuf 的变体。

    要使用的选项值

    • system: 使用系统 Protobuf 位置。

    • path_name 是要使用的安装位置的路径名。

    为了与 CMake 约定保持一致,可以使用 PROTOBUF_DIRPROTOBUF_ROOT_DIR 来代替 WITH_PROTOBUF 指示依赖项的基本位置。

    为了隐式地使用 WITH_PROTOBUF 选项,但同时更细致地指定安装目录,可以使用 PROTOBUF_INCLUDE_DIRPROTOBUF_LIB_DIR 指示头文件(或库)的位置,而不是从 PROTOBUF_ROOT_DIR 值中推断出来。 要指定要链接的外部库列表,请使用 PROTOBUF_LIBRARY 代替 WITH_PROTOBUF 选项。

    如果同时指定 PROTOBUF_LIBRARYPROTOBUF_LIB_DIR,那么 PROTOBUF_LIB_DIR 将在查找库文件时用作附加前缀,而 PROTOBUF_LIBRARY 应该相对于该前缀。 在 Windows 上,PROTOBUF_LIBRARY 应该指向 DLL 的导入库。

    同样,指定 PROTOBUF_BIN_DIR 可以找到使用依赖项所需的二进制文件并找到编译器。

  • -DWITH_SSL={system|path_name}

    此选项指定在编译 Connector/C++ 时使用哪个 SSL 库。 要使用的选项值

    • system: 使用系统 OpenSSL 库。

    • path_name 是要使用的 SSL 安装的路径名称。 它应该是已安装的 OpenSSL 库的路径,并且必须指向包含 lib 子目录的目录,其中包含已构建的 OpenSSL 库。 指定 OpenSSL 安装的路径名称可能比使用 system 更可取,因为它可以防止 CMake 检测和使用系统上安装的较旧或不正确的 OpenSSL 版本。

    为了与 CMake 约定保持一致,可以使用 SSL_DIRSSL_ROOT_DIR (OPENSSL_ROOT_DIR) 来代替 WITH_SSL 指示依赖项的基本位置。

    为了隐式地使用 WITH_SSL 选项,但同时更细致地指定安装目录,可以使用 OPENSSL_INCLUDE_DIROPENSSL_LIB_DIR 指示头文件(或库)的位置,而不是从 SSL_ROOT_DIR 值中推断出来。 要指定要链接的外部库列表,请使用 SSL_LIBRARY 代替 WITH_SSL 选项。

    如果同时指定 SSL_LIBRARYOPENSSL_LIB_DIR,那么 OPENSSL_LIB_DIR 将在查找库文件时用作附加前缀,而 SSL_LIBRARY 应该相对于该前缀。 在 Windows 上,SSL_LIBRARY 应该指向 DLL 的导入库。

  • -DWITH_ZLIB={system|path_name}

    此选项指定在使用外部依赖项编译 Connector/C++ 时使用哪个 ZLIB 安装。 要使用的选项值

    • system: 使用系统 ZLIB 位置。

    • path_name 是要使用的安装位置的路径名。

    为了与 CMake 约定保持一致,可以使用 ZLIB_DIRZLIB_ROOT_DIR 来代替 WITH_ZLIB 指示依赖项的基本位置。

    为了隐式地使用 WITH_ZLIB 选项,但同时更细致地指定安装目录,可以使用 ZLIB_INCLUDE_DIRZLIB_LIB_DIR 指示头文件(或库)的位置,而不是从 ZLIB_ROOT_DIR 值中推断出来。 要指定要链接的外部库列表,请使用 ZLIB_LIBRARY 代替 WITH_ZLIB 选项。

    如果同时指定 ZLIB_LIBRARYZLIB_LIB_DIR,那么 ZLIB_LIB_DIR 将在查找库文件时用作附加前缀,而 ZLIB_LIBRARY 应该相对于该前缀。 在 Windows 上,ZLIB_LIBRARY 应该指向 DLL 的导入库,

  • -DWITH_ZSTD={system|path_name}

    此选项指定在使用外部依赖项编译 Connector/C++ 时使用哪个 ZSTD 安装。 要使用的选项值

    • system: 使用系统 ZSTD 位置。

    • path_name 是要使用的安装位置的路径名。

    为了与 CMake 约定保持一致,可以使用 ZSTD_DIRZSTD_ROOT_DIR 来代替 WITH_ZSTD 指示依赖项的基本位置。

    为了隐式地使用 WITH_ZSTD 选项,但同时更细致地指定安装目录,可以使用 ZSTD_INCLUDE_DIRZSTD_LIB_DIR 指示头文件(或库)的位置,而不是从 ZSTD_ROOT_DIR 值中推断出来。 要指定要链接的外部库列表,请使用 ZSTD_LIBRARY 代替 WITH_ZSTD 选项。

    如果同时指定 ZSTD_LIBRARYZSTD_LIB_DIR,那么 ZSTD_LIB_DIR 将在查找库文件时用作附加前缀,而 ZSTD_LIBRARY 应该相对于该前缀。 在 Windows 上,ZSTD_LIBRARY 应该指向 DLL 的导入库。