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 源代码目录 |
-
默认情况下,会构建动态(共享)库。如果启用此选项,则会构建静态库。
-
这是一个用于创建 Connector/C++ 发行版软件包的内部选项。
-
要生成的构建类型
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的库安装目录。如果未指定,则默认值为lib64或lib。此选项是在 Connector/C++ 8.0.14 中添加的。
-
-DCMAKE_INSTALL_PREFIX=dir_name安装基础目录(Connector/C++ 安装位置)。
-
这是一个用于创建 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时)。 -
MySQL 安装目录。
此选项仅适用于构建旧版 JDBC 连接器(即仅当启用
WITH_JDBC时)。 -
(仅限 Windows)使用静态运行时库(
/MT*编译器选项)。如果您使用 Connector/C++ 的代码也使用静态运行时库,则可能需要此选项。 -
-DWITH_BOOST={system|path_name}此选项指定在使用外部依赖项编译 Connector/C++ 时要使用哪个 BOOST 头文件。要使用的选项值
system: 使用系统 BOOST 头文件。path_name是要使用的文件的路径名。
为了与 CMake 约定保持一致,可以使用
BOOST_DIR或BOOST_ROOT_DIR代替WITH_BOOST来指示依赖项的基本位置。作为一种隐含WITH_BOOST选项(无需显式指定)的替代方案,可以使用BOOST_INCLUDE_DIR来提供头文件位置,而不是从BOOST_ROOT_DIR值中推导出该位置。此选项仅适用于构建旧版 JDBC 连接器(即仅当启用
WITH_JDBC时)。 -
是否启用生成 Doxygen 文档。从 Connector/C++ 8.0.16 开始,启用此选项还会导致
all目标构建 Doxygen 文档。 -
是否构建旧版 JDBC 连接器。此选项默认情况下处于禁用状态。如果启用,Connector/C++ 8.0 应用程序可以使用旧版 JDBC API,就像 Connector/C++ 1.1 应用程序一样。
-
此选项指定在使用外部依赖项编译 Connector/C++ 时要使用哪个 LZ4 安装。要使用的选项值
system: 使用系统 LZ4 位置。path_name是要使用的安装位置的路径名。
为了与 CMake 约定保持一致,可以使用
LZ4_DIR或LZ4_ROOT_DIR代替WITH_LZ4来指示依赖项的基本位置。为了隐含
WITH_LZ4选项,但更细致地指定安装目录,可以使用LZ4_INCLUDE_DIR或LZ4_LIB_DIR来指示头文件(或库)位置,而不是从LZ4_ROOT_DIR值中推导出该位置。为了指定要链接的外部库列表,可以使用LZ4_LIBRARY代替WITH_LZ4选项。如果您同时指定了
LZ4_LIBRARY和LZ4_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_DIR或MYSQL_ROOT_DIR来代替WITH_MYSQL指示依赖项的基本位置。为了隐式地使用
WITH_MYSQL选项,但同时更细致地指定安装目录,可以使用MYSQL_INCLUDE_DIR或MYSQL_LIB_DIR指示头文件(或库)的位置,而不是从MYSQL_ROOT_DIR值中推断出来。 要指定要链接的外部库列表,请使用MYSQL_LIBRARY代替WITH_MYSQL选项。如果同时指定
MYSQL_LIBRARY和MYSQL_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_DIR或PROTOBUF_ROOT_DIR来代替WITH_PROTOBUF指示依赖项的基本位置。为了隐式地使用
WITH_PROTOBUF选项,但同时更细致地指定安装目录,可以使用PROTOBUF_INCLUDE_DIR或PROTOBUF_LIB_DIR指示头文件(或库)的位置,而不是从PROTOBUF_ROOT_DIR值中推断出来。 要指定要链接的外部库列表,请使用PROTOBUF_LIBRARY代替WITH_PROTOBUF选项。如果同时指定
PROTOBUF_LIBRARY和PROTOBUF_LIB_DIR,那么PROTOBUF_LIB_DIR将在查找库文件时用作附加前缀,而PROTOBUF_LIBRARY应该相对于该前缀。 在 Windows 上,PROTOBUF_LIBRARY应该指向 DLL 的导入库。同样,指定
PROTOBUF_BIN_DIR可以找到使用依赖项所需的二进制文件并找到编译器。 -
此选项指定在编译 Connector/C++ 时使用哪个 SSL 库。 要使用的选项值
system: 使用系统 OpenSSL 库。path_name是要使用的 SSL 安装的路径名称。 它应该是已安装的 OpenSSL 库的路径,并且必须指向包含lib子目录的目录,其中包含已构建的 OpenSSL 库。 指定 OpenSSL 安装的路径名称可能比使用system更可取,因为它可以防止 CMake 检测和使用系统上安装的较旧或不正确的 OpenSSL 版本。
为了与 CMake 约定保持一致,可以使用
SSL_DIR或SSL_ROOT_DIR(OPENSSL_ROOT_DIR) 来代替WITH_SSL指示依赖项的基本位置。为了隐式地使用
WITH_SSL选项,但同时更细致地指定安装目录,可以使用OPENSSL_INCLUDE_DIR或OPENSSL_LIB_DIR指示头文件(或库)的位置,而不是从SSL_ROOT_DIR值中推断出来。 要指定要链接的外部库列表,请使用SSL_LIBRARY代替WITH_SSL选项。如果同时指定
SSL_LIBRARY和OPENSSL_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_DIR或ZLIB_ROOT_DIR来代替WITH_ZLIB指示依赖项的基本位置。为了隐式地使用
WITH_ZLIB选项,但同时更细致地指定安装目录,可以使用ZLIB_INCLUDE_DIR或ZLIB_LIB_DIR指示头文件(或库)的位置,而不是从ZLIB_ROOT_DIR值中推断出来。 要指定要链接的外部库列表,请使用ZLIB_LIBRARY代替WITH_ZLIB选项。如果同时指定
ZLIB_LIBRARY和ZLIB_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_DIR或ZSTD_ROOT_DIR来代替WITH_ZSTD指示依赖项的基本位置。为了隐式地使用
WITH_ZSTD选项,但同时更细致地指定安装目录,可以使用ZSTD_INCLUDE_DIR或ZSTD_LIB_DIR指示头文件(或库)的位置,而不是从ZSTD_ROOT_DIR值中推断出来。 要指定要链接的外部库列表,请使用ZSTD_LIBRARY代替WITH_ZSTD选项。如果同时指定
ZSTD_LIBRARY和ZSTD_LIB_DIR,那么ZSTD_LIB_DIR将在查找库文件时用作附加前缀,而ZSTD_LIBRARY应该相对于该前缀。 在 Windows 上,ZSTD_LIBRARY应该指向 DLL 的导入库。