Connector/C++ 识别CMake本节中描述的选项。
表 2.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 |
|
WITH_LZ4 |
LZ4源码目录 | 8.0.31 | |
WITH_MYSQL |
MySQL 服务器源目录 | system |
|
WITH_PROTOBUF |
Protobuf 源目录 | 8.0.31 | |
WITH_SSL |
SSL 源目录 | system |
|
WITH_ZLIB |
ZLIB 源目录 | 8.0.31 | |
WITH_ZSTD |
ZSTD 源目录 | 8.0.31 |
默认情况下,构建动态(共享)库。如果启用此选项,则会构建静态库。
这是用于创建连接器/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++ 的位置)。
这是用于创建连接器/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_namemysql_config程序 的路径。
在非 Windows 系统上,CMake检查是否
MYSQL_CONFIG_EXECUTABLE已设置。如果不是,CMake会尝试定位mysql_config到默认位置。此选项仅在您构建遗留 JDBC 连接器时适用(即,仅当
WITH_JDBC启用时)。安装 MySQL 的目录。
此选项仅在您构建遗留 JDBC 连接器时适用(即,仅当
WITH_JDBC启用时)。(仅限 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启用时)。是否启用生成 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_DIRor来代替 指示依赖项的基本位置。LZ4_ROOT_DIRWITH_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_DIRor 来代替指示依赖项的基本位置。MYSQL_ROOT_DIRWITH_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_DIRor 来代替指示依赖项的基本位置。PROTOBUF_ROOT_DIRWITH_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可以定位使用依赖项所需的二进制文件并找到编译器。此选项指定编译连接器/C++ 时要使用的 SSL 库。要使用的选项值:
system: 使用系统 OpenSSL 库。path_name是要使用的 SSL 安装的路径名。它应该是已安装的 OpenSSL 库的路径,并且必须指向一个目录,该目录包含一个包含lib已构建的 OpenSSL 库的子目录。为 OpenSSL 安装指定路径名可能比使用更可取,system因为它可以防止 CMake检测和使用系统上安装的较旧或不正确的 OpenSSL 版本。
为了与CMake约定 保持一致,可以使用
SSL_DIRorSSL_ROOT_DIR( ) 代替来指示依赖项的基本位置。OPENSSL_ROOT_DIRWITH_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_DIRor 来代替指示依赖项的基本位置。ZLIB_ROOT_DIRWITH_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}此选项指定在编译具有外部依赖项的连接器/C++ 时要使用的 ZSTD 安装。要使用的选项值:
system:使用系统 ZSTD 位置。path_name是要使用的安装位置的路径名。
为了与CMake约定保持一致, 可以使用
ZSTD_DIRor 来代替指示依赖项的基本位置。ZSTD_ROOT_DIRWITH_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 的导入库。