MySQL 8.4 C API 開發人員指南  /  MySQL C API 實作

第 2 章 MySQL C API 實作

MySQL C API 是一個基於 C 的 API,以 C 語言編寫的用戶端應用程式可以使用它來與 MySQL Server 通訊。用戶端程式在編譯時引用 C API 頭文件,並在連結時連結到 C API 庫檔案 libmysqlclient

要取得建置 C API 用戶端程式所需的 C API 頭文件和庫檔案,請安裝 MySQL Server 發行版本。

您可以安裝包含預先建置的 C API 檔案的二進制發行版本,或者您可以使用 MySQL Server 原始碼發行版本並自行建置 C API 檔案。建置 MySQL Server 也會建置 libmysqlclient;請參閱 從原始碼安裝 MySQL。它不能單獨建置,但使用可選的 -DWITHOUT_SERVER=ON CMake 選項進行設定是相關的。

在連結 C API 用戶端應用程式時使用的庫檔案名稱取決於建置發行版本的庫類型和平台。

  • 在 Unix(和類 Unix)系統上,靜態庫為 libmysqlclient.a。動態庫在大多數 Unix 系統上為 libmysqlclient.so,在 macOS 上為 libmysqlclient.dylib

  • 在 Windows 上,靜態庫為 mysqlclient.lib,動態庫為 libmysql.dll。Windows 發行版本也包含 libmysql.lib,這是一個使用動態庫所需的靜態匯入庫。

    Windows 發行版本還包含一組除錯庫。這些庫的名稱與非除錯庫相同,但位於 lib/debug 庫中。在編譯使用除錯 C 執行階段建置的用戶端時,您必須使用除錯庫。

在 Unix 上,您可能還會看到名稱中包含 _r 的庫。在 MySQL 5.5 之前,這些庫是與非 _r 庫分開建置為執行緒安全(可重入)的庫。從 5.5 開始,這兩個庫相同,並且 _r 名稱是相應非 _r 名稱的符號連結。沒有必要使用 _r 庫。例如,如果您使用 mysql_config 取得連結器旗標,您可以在所有情況下使用 mysql_config --libs,即使對於多執行緒用戶端也是如此。沒有必要使用 mysql_config --libs_r