萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

Linux make / make clean / make install 完整用法詳解

make 依據 Makefile 自動化編譯、連結、安裝,是開源專案標準建構工具。本文詳細說明各目標用途、依賴關係與常見變數。

Makefile 核心概念

  • 目標:要產出的檔案(執行檔、庫、物件檔)。
  • 依賴:目標所需的原始檔、頭檔、其他目標。
  • 規則:如何從依賴產生目標(編譯器指令)。
  • 變數:CC、CFLAGS、LDFLAGS、PREFIX 等可覆寫。

常用 make 目標

目標作用典型輸出
make / make all預設目標,編譯連結產出執行檔/庫bin/、lib/ 下的產物
make clean刪除編譯產生的中間檔(*.o)、執行檔乾淨原始碼樹
make install將產物複製至系統目錄($(DESTDIR)$(PREFIX)/bin 等)/usr/local/bin、/usr/local/lib
make uninstall移除安裝檔案(需 Makefile 支援)—
make dist打包發布原始碼 tarball(PACKAGE-VERSION.tar.gz)釋出用原始碼包
make distcheck打包→解壓→configure→make→make install 驗證確保發布包可正常建構
make distcleanclean + 刪除 configure 產生的檔案(Makefile、config.h 等)回到純原始碼狀態

變數覆寫範例

# 指定安裝前綴
make PREFIX=/opt/myapp install

# 指定編譯器與優化等級
make CC=clang CFLAGS="-O2 -pipe -march=native"

# 交叉編譯
make CC=aarch64-linux-gnu-gcc CROSS_COMPILE=aarch64-linux-gnu-

平行編譯加速

make -j$(nproc)   # 使用所有 CPU 核心
make -j4          # 指定 4 條執行緒

常見問題排查

  • 缺少依賴庫:安裝對應 -devel/-dev 套件。
  • 權限不足:make install 需 root,或配合 DESTDIR 做打包安裝。
  • Makefile 缺失:先執行 ./configure 或 cmake 產生。
copyright © 萬盛學電腦網 all rights reserved