MySQL C API 是一個基於 C 的 API,以 C 撰寫的客戶端應用程式可以使用它來與 MySQL 伺服器通訊。客戶端程式在編譯時參考 C API 標頭檔,並在連結時連結到 C API 程式庫檔案 libmysqlclient
。
若要取得建置 C API 客戶端程式所需的 C API 標頭和程式庫檔案,請安裝 MySQL 伺服器發行版本。
您可以安裝包含預先建置的 C API 檔案的二進制發行版本,也可以使用 MySQL 伺服器原始碼發行版本並自行建置 C API 檔案。建置 MySQL 伺服器也會建置 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。