工程管理工具make及makefile

2021-06-17 18:21:59 字數 1739 閱讀 6151

本文**:

先給乙個成功以後所生成的全部檔案

1.為什麼要管理工具make和makefile

和使用連線檔案testlink相似,bc也允許把原始檔的編譯及目標檔案的連線全部工作寫成一種叫makefile的檔案,並提供了可以執行這種檔案的工具make.exe實現了所謂的自動編譯和連線

2.make工具

總所周知,稍大一些的軟體工程都會有很多原始檔,對數量如此龐大的原始檔進行編譯連線管理是一件很困難的事情,尤其是因程式中的錯誤而要多次重複做相同的管理工作時,更是詩人不厭其煩

為了擺脫上述窘境,現代開發工具都配有工程管理工具make.exe。該工具的功能是執行一種叫makefile的檔案。該檔案由軟體開發者編寫,並在其中說明了工程專案原始檔的編譯,連線步驟以及一些相應的管理工作步驟。這樣,當使用者需要時,便可以使用make啟動工程管理工具make.exe,該工具就會去查詢使用者編寫的makefile並執行它

必須指出,作為嵌入式系統的開發不能完全依賴ide,因為嵌入式應用往往會有一些個性化需求,而ide所產生的**往往不能滿足這些需求。所以,嵌入式設計必須要求程式設計人員必須事必躬親,每一步設計工作都要心中有數。因而,對於嵌入式設計人員來說,如果不在一定程度上掌握make和makefile,那麼就不可能開發出合格的嵌入式軟體

3makefile結構

所謂的makefile檔案就是用dos命令寫出來的乙個檔案,只不過這些命令表達了對工程檔案的管理工作

乙個makefile由若干個程式段組成,每個段都有一組用來完成工程管理工作的命令集。為了對程式段進行標註,程式段的前面必須有乙個標號。不同的程式段需要關聯時,在標號後面還可以有乙個或者多個與程式段關聯程式段的標號。每個關聯標號前面都要帶乙個空格

程式段標號:關聯程式段標號 1 關聯程式段標號 2...

命令集注意:命令集中的所有命令都必須以tab鍵開頭

makefile **:

##########################################

#                                  建立可執行檔案(exe)

test.exe:

tlink @testlink

##########################################

#                                  建立各個目標檔案(obj)

pa.obj:

bcc -c -ml -ic:\bc\include -lc:\bc\lib pa.c

pb.obj:

bcc -c -ml -ic:\bc\include -lc:\bc\lib pb.c

test.obj:

bcc -c -ml -ic:\bc\include -lc:\bc\lib test.c

將上面的程式存為檔名makefile 注意,不需要副檔名

另外目錄中要先建好 testlink檔案 p21

依次輸入 make pa.obj

make pb.obj

make test.obj

make

結論makefile的首段是make.exe的預設執行段,而其他段地執行要在make命令中通過標號來指定。

為了提高可讀性,在這個makefile中使用了檔名作為標號,而且這個檔名就是本程式段的命令即所要完成的目標。第乙個程式段完成各個目標檔案的連線,從而形成最終可執行檔案test.exe,而另外三個程式則分別完成了三個原始檔的編譯,從而形成了三個目標檔案pa.obj pb.obj test.obj

工程管理make

1 什麼是工程?很多檔案構成的軟體 10000個檔案如何編譯?工程管理器 作用?實現自動編譯 makefile 規定了如何自動編譯 指令碼檔案 實現批處理 指令碼程式 測試 運維 三要素 目標 依賴 命令 tab make fname 指定按照那個makefile編譯 phony 定義偽目標 避免和...

工程管理器make

工程管理器make 命令tree 樹狀顯示目錄下的檔案 make命令 通過批處理來實現自動編譯 要想使用make必須要有 makefile 檔案 makefile三元素 目標 依賴命令 執行此命令,依賴該檔案來實現該目標 僅編譯hello.c的 makefile 檔案示例 hello hello.o...

make工程管理器

今天首先編寫了一道程式,有n個人圍成一圈,順序排號,從第乙個人開始報數 從1報到 3 凡報到 3的人退出圈子,問最後留下的是原來第幾號的那位。通過這道程式設計,對 c語言有了更深刻的理解。隨後又學習了 make 工程管理器的一些知識。首先是建立功能目錄 mkdir p add src mv add....