LinuxC程式設計---make命令的使用(轉)
LinuxC程式設計---make命令的使用(轉)[@more@] 摘要:在開發一個系統時,一般是將一個系統分成幾個模組,這樣做提高了系統的可維護性,但由於各個模組間不可避免存在關聯,所以當一個模組改動後,其他模組也許會有所更新,當然對小系統來說,手工編譯連線是沒問題,但是如果是一個大系統,存在很多個模組,那麼手工編譯的方法就不適用了。為此,在Linux系統中,專門提供了一個make命令來自動維護目標檔案,與手工編譯和連線相比,make命令的優點在於他只更新修改過的檔案(在Linux中,一個檔案被建立或更新後有一個最後修改時間,make命令就是透過這個最後修改時間來判斷此檔案是否被修改),而對沒修改的檔案則置之不理,並且make命令不會漏掉一個需要更新的檔案。
在開發一個系統時,一般是將一個系統分成幾個模組,這樣做提高了系統的可維護性,但由於各個模組間不可避免存在關聯,所以當一個模組改動後,其他模組也許會有所更新,當然對小系統來說,手工編譯連線是沒問題,但是如果是一個大系統,存在很多個模組,那麼手工編譯的方法就不適用了。為此,在Linux系統中,專門提供了一個make命令來自動維護目標檔案,與手工編譯和連線相比,make命令的優點在於他只更新修改過的檔案(在Linux中,一個檔案被建立或更新後有一個最後修改時間,make命令就是透過這個最後修改時間來判斷此檔案是否被修改),而對沒修改的檔案則置之不理,並且make命令不會漏掉一個需要更新的檔案。
檔案和檔案間或模組或模組間有可能存在倚賴關係,make命令也是依據這種依賴關係來進行維護的,所以我們有必要了解什麼是依賴關係;打個最比喻:如果我們想玩遊戲,必須有遊戲光碟和電腦(這兩者間存在依賴關係),而有遊戲光碟和電腦的前提條件是必須經濟條件允許,另外當你有了遊戲光碟後還要根據你的心情來選擇是玩哪種遊戲;如下圖:
玩遊戲
/
/
遊戲光碟 電腦
/ /
/ /
心情 經濟情況
make命令當然不會自己知道這些依賴關係,而需要程式設計師將這些依賴關係寫入一個叫makefile的檔案中。Makefile檔案中包含著一些目標,通常目標就是檔名,對每一個目標,提供了實現這個目標的一組命令以及和這個目標有依賴關係的其他目標或檔名,以下是一個簡單的Makefile的簡單例子:
#一個簡單的Makefile
在開發一個系統時,一般是將一個系統分成幾個模組,這樣做提高了系統的可維護性,但由於各個模組間不可避免存在關聯,所以當一個模組改動後,其他模組也許會有所更新,當然對小系統來說,手工編譯連線是沒問題,但是如果是一個大系統,存在很多個模組,那麼手工編譯的方法就不適用了。為此,在Linux系統中,專門提供了一個make命令來自動維護目標檔案,與手工編譯和連線相比,make命令的優點在於他只更新修改過的檔案(在Linux中,一個檔案被建立或更新後有一個最後修改時間,make命令就是透過這個最後修改時間來判斷此檔案是否被修改),而對沒修改的檔案則置之不理,並且make命令不會漏掉一個需要更新的檔案。
檔案和檔案間或模組或模組間有可能存在倚賴關係,make命令也是依據這種依賴關係來進行維護的,所以我們有必要了解什麼是依賴關係;打個最比喻:如果我們想玩遊戲,必須有遊戲光碟和電腦(這兩者間存在依賴關係),而有遊戲光碟和電腦的前提條件是必須經濟條件允許,另外當你有了遊戲光碟後還要根據你的心情來選擇是玩哪種遊戲;如下圖:
玩遊戲
/
/
遊戲光碟 電腦
/ /
/ /
心情 經濟情況
make命令當然不會自己知道這些依賴關係,而需要程式設計師將這些依賴關係寫入一個叫makefile的檔案中。Makefile檔案中包含著一些目標,通常目標就是檔名,對每一個目標,提供了實現這個目標的一組命令以及和這個目標有依賴關係的其他目標或檔名,以下是一個簡單的Makefile的簡單例子:
#一個簡單的Makefile
QUOTE:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617542/viewspace-945852/,如需轉載,請註明出處,否則將追究法律責任。
下一篇:
編譯核心的一點點經驗(轉)
![]()
請登入後發表評論
登入
全部評論
|
相關文章
- 使用make命令建立Service類
- 使用 make:service 命令快速生成 Services
- 玩轉flutter create命令,做10倍程式設計師Flutter程式設計師
- 使用grep命令,玩轉程式碼審計尋找Sink
- Linux下使用make命令編譯c原始檔Linux編譯
- Shell程式設計-read命令程式設計
- 程式設計師寫的跳轉程式設計師
- laravel 建立自定義的artisan make命令Laravel
- Laravel 建立自定義的 artisan make 命令Laravel
- Make 使用
- 玩轉 PHP 網路程式設計全套之多程式程式設計PHP程式設計
- C語言 Make命令教程C語言
- shell程式設計必須要掌握的命令-xargs程式設計
- 寫給前端程式設計師的命令列入門前端程式設計師命令列
- 【轉】1.1非同步程式設計:執行緒概述及使用非同步程式設計執行緒
- 【Linux常用命令①】程式設計師必須掌握的Linux命令Linux程式設計師
- sql語句的程式設計手冊(轉)SQL程式設計
- 【轉載】MapReduce程式設計 Intellij Idea配置MapReduce程式設計環境程式設計IntelliJIdea
- 玩轉 PHP 網路程式設計全套之 socket stream 程式設計PHP程式設計
- 程式設計中快取的使用程式設計快取
- 半路轉行學程式設計還來得及嗎?半路轉行如何學程式設計?程式設計
- 程式設計師需要了解的10個Linux命令程式設計師Linux
- Laravel自定義Make命令生成Service類Laravel
- 玩轉 PHP 網路程式設計全套之中斷系統程式設計PHP程式設計
- Rust 程式設計,讀取命令列引數Rust程式設計命令列
- Python 程式設計之Tkinter的使用01Python程式設計
- 程式設計中暫存器的使用程式設計
- API設計中使用命令模式替代RPCAPI模式RPC
- NPDP|程式設計師轉產品經理好轉嗎?程式設計師
- MFC下CSocket程式設計詳解(轉)程式設計
- ./configure,make,make install的作用
- CAD如何使用旋轉命令
- 程式設計漫談(二十):如何自學程式設計及Java、上手真實開發及轉行程式設計師的建議Java行程程式設計師
- 反轉!BAT程式設計吸金榜來了,AI程式設計師刷爆了......BATAI程式設計師
- 程式設計師命令列查詞好幫手程式設計師命令列
- C語言程式設計——9,預處理命令C語言程式設計
- shell程式設計-sed命令詳解(超詳細)程式設計
- JS 命令式 宣告式 函式式 程式設計?JS函式程式設計
- Linux系統程式設計【3.1】——編寫ls命令Linux程式設計