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 函式庫的路徑,並且必須指向一個包含已建置的 OpenSSL 函式庫的 lib 子目錄的目錄。為 OpenSSL 安裝指定路徑名稱可能比使用 system 更好,因為它可以防止 CMake 偵測和使用系統上安裝的較舊或不正確的 OpenSSL 版本。

    為了與 CMake 慣例保持一致,可以使用 SSL_DIRSSL_ROOT_DIROPENSSL_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 的匯入函式庫。