首先我們討論一下makefile是什麼它為什麼會存在
makefile是什麼?長話短說makefile是一種**管理工具,也是一種shell指令碼
為什麼會存在呢? 例如通常我們編譯乙個 cpp 檔案:
g++ main.cpp -o main
這樣的也許我們覺得很輕鬆 但是如果要編譯的檔案數量有幾十個呢?
難道我們 g++ main.cpp server.cpp client.cpp ...... cpp -o main 這樣寫嘛? 再者 我們每次修改之後都要重新編譯這些檔案
又要重新寫 錯誤率不僅上公升了,而且編譯效率也不高 所以我們引用了makefile 這種**管理工具
一.makefile的檔名種類:
1.makefile 2.makefile 首字母大小寫都是可以的
二, makefile 的規則
規則的三要素:目標,依賴, 命令
格式: 第一行: 目標:依賴條件
第二行: table (必須的) 命令
三者的關係
通俗一點講就是 依賴(相當於原材料) -> 命令(加工)-> 目標(產物)
我們先來寫乙個 簡單的demo(後續我們將介紹相關的函式,變數和特殊的符號) 引用 一下makefile 是如何提高編譯效率的
效果如下:
這裡我們可以看到只需要一條命令就可以 編譯整個檔案 是不是很快捷
思考:當我們修改了main.cpp乙個檔案的時候,他會不會兩個cpp檔案都重新編譯成 .o 的二進位制檔案呢?
答案是不會的,原理如下
這裡的
第一條規則找不到依賴了 去尋找的新規則
總之 makefile內部的工作原理 會幫我們 檢測出誰是修改過的檔案 (怎麼檢測的呢:根據檔案最後一次修改的時間)
然後只編譯那個修改過的檔案生成 .o 檔案 然後重新通過命令生成可執行檔案main
來一起討論
Bloom Filter 概念和原理
bloom filter 是由 howard bloom 在 1970 年提出的二進位制向量資料結構,它具有很好的空間和時間效率,被用來檢測乙個元素是不是集合中的乙個成員。如果檢測結果為是,該元素不一定在集合中 但如果檢測結果為否,該元素一定不在集合中。因此bloom filter具有100 的召回...
LDAP概念和原理介紹
ldap概念和原理介紹 相信對於許多的朋友來說,可能聽說過ldap,但是實際中對ldap的了解和具體的原理可能還比較模糊,今天就從 什麼是ldap ldap的主要產品 ldap的基本模型 ldap的使用案例 四個方面來做乙個介紹。我們在開始介紹之前先來看幾個問題 1.我們日常的辦公系統是不是有多個?...
Tomcat 7 (1)概念和原理
概念和原理 概念 tomcat 原理 1 connector元件 接收客戶端連線 加工處理客戶端請求。每個connector定義乙個埠進行監聽,分別去負責請求報文的解析和響應組裝。解析的過程生成request物件,組裝的過程生成response物件。其實就是乙個聯結器,如果將tomcat比作乙個巨大...