4.4 连接器/C++ 源配置选项

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

表 4.1 连接器/C++ 源配置选项参考

格式 描述 默认 介绍
BUILD_STATIC 是否建立静态库 OFF
BUNDLE_DEPENDENCIES 连接器是否绑定外部依赖库 OFF
CMAKE_BUILD_TYPE 要生成的构建类型 Debug
CMAKE_INSTALL_DOCDIR 文档安装目录 8.0.14
CMAKE_INSTALL_INCLUDEDIR 头文件安装目录 8.0.14
CMAKE_INSTALL_LIBDIR 库安装目录 8.0.14
CMAKE_INSTALL_PREFIX 安装基目录 /usr/local
MAINTAINER_MODE 仅限内部使用 OFF 8.0.12
MYSQLCLIENT_STATIC_BINDING 是否链接到共享的MySQL客户端库 ON 8.0.16
MYSQLCLIENT_STATIC_LINKING 是否静态链接MySQL客户端库 ON 8.0.16
MYSQL_CONFIG_EXECUTABLE mysql_config 程序的路径 ${MYSQL_DIR}/bin/mysql_config
MYSQL_DIR MySQL服务器安装目录
STATIC_MSVCRT 使用静态运行时库
WITH_BOOST Boost源码目录 system
WITH_DOC 是否生成Doxygen文档 OFF
WITH_JDBC 是否构建遗留 JDBC 库 OFF 8.0.7
WITH_LZ4 LZ4源码目录 8.0.31
WITH_MYSQL MySQL 服务器源目录 system
WITH_PROTOBUF Protobuf 源目录 8.0.31
WITH_SSL SSL 源目录 system 8.0.7
WITH_ZLIB ZLIB 源目录 8.0.31
WITH_ZSTD ZSTD 源目录 8.0.31

  • -DBUILD_STATIC=bool

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

  • -DBUNDLE_DEPENDENCIES=bool

    这是用于创建连接器/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

    这是用于创建连接器/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客户端库。默认是ON(使用静态链接到客户端库)。禁用此选项会启用到客户端库的动态链接。

    此选项仅在您构建遗留 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*编译器选项)。如果使用连接器/C++ 的代码也使用静态运行时库,则可能需要此选项。

  • -DWITH_BOOST={system|path_name}

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

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

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

    为了与CMake约定保持一致, 可以使用 BOOST_DIRor 来代替指示依赖项的基本位置。作为暗示 选项(未指定)的替代方法,用于提供头文件位置而不是从值中派生它。 BOOST_ROOT_DIRWITH_BOOSTWITH_BOOSTBOOST_INCLUDE_DIRBOOST_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_DIRor来代替 指示依赖项的基本位置。 LZ4_ROOT_DIRWITH_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_DIRor 来代替指示依赖项的基本位置。 MYSQL_ROOT_DIRWITH_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_DIRor 来代替指示依赖项的基本位置。 PROTOBUF_ROOT_DIRWITH_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}

    此选项指定编译连接器/C++ 时要使用的 SSL 库。要使用的选项值:

    • system: 使用系统 OpenSSL 库。

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

    为了与CMake约定 保持一致,可以使用 SSL_DIRor SSL_ROOT_DIR ( ) 代替来指示依赖项的基本位置。 OPENSSL_ROOT_DIRWITH_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_DIRor 来代替指示依赖项的基本位置。 ZLIB_ROOT_DIRWITH_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}

    此选项指定在编译具有外部依赖项的连接器/C++ 时要使用的 ZSTD 安装。要使用的选项值:

    • system:使用系统 ZSTD 位置。

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

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

    To imply the WITH_ZSTD option but with more fine-grained specification of installation directories, use ZSTD_INCLUDE_DIR or ZSTD_LIB_DIR to indicate the header file (or library) location instead of deriving it from the ZSTD_ROOT_DIR value. To specify a list of external libraries to link to, use ZSTD_LIBRARY instead of the WITH_ZSTD option.

    If you specify both ZSTD_LIBRARY and ZSTD_LIB_DIR, then ZSTD_LIB_DIR is used as an additional prefix when finding the library file and ZSTD_LIBRARY should be relative to that prefix. On Windows, ZSTD_LIBRARY should point at the import library of the DLL.