首頁 >後端開發 >C++ >如何為單一檔案專案建立簡單的 C Makefile?

如何為單一檔案專案建立簡單的 C Makefile?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-08 03:48:10972瀏覽

How to Create a Simple C   Makefile for a Single-File Project?

如何製作一個簡單的C Makefile

問題:
我們需要建立一個Makefile 來管理我們的C 項目,但我們還沒有被教導如何這樣做。此專案由一個檔案 a3driver.cpp 組成,該檔案從 /user/cse232/Examples/example32.sequence.cpp 匯入一個類別。

解決方案:

1.基本Makefile:

a3a.exe: a3driver.cpp example32.sequence.cpp
    g++ -g -o a3a.exe a3driver.cpp example32.sequence.cpp

此Makefile 宣告可執行檔依賴原始檔a3driver.cpp 和example32.sequence.cpp。執行時會執行指令將程式編譯成可執行檔。

2.使用內建規則:

CC=g++
CPPFLAGS=-g

a3a.exe: a3driver.o example32.sequence.o
    $(CC) $(LDFLAGS) -o a3a.exe a3driver.o example32.sequence.o

a3driver.o: a3driver.cpp
    $(CC) $(CPPFLAGS) -c a3driver.cpp

example32.sequence.o: example32.sequence.cpp
    $(CC) $(CPPFLAGS) -c example32.sequence.cpp

此 Makefile 使用內建規則來簡化編譯指令。它將 CC 變數定義為 C 編譯器,並將 CPPFLAGS 變數定義為具有公共編譯標誌。依賴項仍然是明確定義的,但編譯命令是自動產生的。

3.使用自動產生的依賴項:

CC=g++
CPPFLAGS=-g

a3a.exe: a3driver.o example32.sequence.o
    $(CC) $(LDFLAGS) -o a3a.exe a3driver.o example32.sequence.o

depend: .depend

.depend: $(SRCS)
    $(CC) $(CPPFLAGS) -MM $^ > .depend;

.PHONY: clean

clean:
    rm -f a3driver.o example32.sequence.o .depend

include .depend

此 Makefile 使用內建 -MM 標誌自動產生依賴項。 dependent 目標執行產生具有相依性的檔案 .depend 的指令。 .PHONY: clean 目標是個特殊目標,其實不是文件或規則。 clean 目標會刪除目標檔案和 .depend 檔案。

以上是如何為單一檔案專案建立簡單的 C Makefile?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn