CMake構建學習筆記3-libpng庫的構建

charlee44發表於2024-08-24

libpng是一個用於讀取、寫入 PNG (Portable Network Graphics) 檔案格式的開源軟體庫,有了上一篇筆記作為基礎,構建起來也非常簡單。還是在原始碼的根目錄中建立一個build資料夾,執行如下關鍵指令:

# 配置CMake  
cmake .. -G "$Generator" -A x64 `
-DCMAKE_BUILD_TYPE=RelWithDebInfo `
-DCMAKE_PREFIX_PATH="$InstallDir" `
-DCMAKE_INSTALL_PREFIX="$InstallDir" `
-DPNG_TESTS=OFF `
-DPNG_STATIC=OFF `

# 構建階段,指定構建型別
cmake --build . --config RelWithDebInfo

# 安裝階段,指定構建型別和安裝目標
cmake --build . --config RelWithDebInfo --target install
  1. $Generator在上篇筆記中說過是生成器,例如"Visual Studio 16 2019"。
  2. CMAKE_BUILD_TYPE是設定構建的型別,這裡使用的是RelWithDebInfo,也就是Release帶除錯資訊的型別。
  3. CMAKE_PREFIX_PATH是一個非常關鍵的CMake變數,用於指定CMake查詢依賴項、庫、包等的優先搜尋路徑。它可以是一個以分號分隔的目錄列表,CMake在這些目錄中查詢外部依賴項,這裡使用的是安裝目錄。libpng是需要依賴於zlib進行構建的,而在上一篇筆記中我們已經在這個目錄中安裝了zlib,那麼只要將這個變數指定這個目錄,CMake進行構建的時候就會自動找到zlib的依賴項,從而簡化我們的配置過程。如下圖所示:
    CMake變數和專案配置
  4. PNG_TESTS和PNG_STATIC是libpng提供的構建選項,將它們都設定成OFF,表示不用構建測試程式,也不同構建靜態庫。

相關文章