MySQL 8.4 C API 開發者指南  /  撰寫基於 C API 的用戶端應用程式  /  使用 pkg-config 建置 C API 用戶端程式

3.3 使用 pkg-config 建置 C API 用戶端程式

MySQL 發行版包含一個 mysqlclient.pc 檔案,其中提供 MySQL 設定的資訊,供 pkg-config 命令使用。這使得可以使用 pkg-config 作為 mysql_config 的替代方案,以取得編譯 MySQL 應用程式所需的編譯器標誌或連結函式庫等資訊。例如,以下命令對等:

mysql_config --cflags
pkg-config --cflags mysqlclient

mysql_config --libs
pkg-config --libs mysqlclient

最後一個 pkg-config 命令會產生用於動態連結的標誌。若要產生用於靜態連結的標誌,請使用此命令:

pkg-config --static --libs mysqlclient

在某些平台上,使用和不使用 --static 的輸出可能相同。

注意

如果 pkg-config 找不到 MySQL 資訊,可能需要將 PKG_CONFIG_PATH 環境變數設定為 mysqlclient.pc 檔案所在的目錄,預設通常是 MySQL 函式庫目錄下的 pkgconfig 目錄。例如(請適當調整位置):

# For sh, bash, ...
export PKG_CONFIG_PATH=/usr/local/mysql/lib/pkgconfig
# For csh, tcsh, ...
setenv PKG_CONFIG_PATH /usr/local/mysql/lib/pkgconfig

mysqlconfig.pc 的安裝位置可以使用 INSTALL_PKGCONFIGDIR CMake 選項來控制。請參閱 MySQL 來源組態選項

--variable 選項會採用設定變數名稱並顯示變數值:

# installation prefix directory
pkg-config --variable=prefix mysqlclient
# header file directory
pkg-config --variable=includedir mysqlclient
# library directory
pkg-config --variable=libdir mysqlclient

若要查看 pkg-config 可以使用 --variable 選項顯示哪些變數值,請使用此命令:

pkg-config --print-variables mysqlclient

您可以在命令行中使用反引號來使用 pkg-config,以包含它針對特定選項產生的輸出。例如,若要編譯和連結 MySQL 用戶端程式,請使用 pkg-config,如下所示:

gcc -c `pkg-config --cflags mysqlclient` progname.c
gcc -o progname progname.o `pkg-config --libs mysqlclient`