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 的导入库。