這一章完全可以和前兩篇文件歸類在一起,可以選擇放一起看哦
?http://t.csdnimg.cn/aNaAg
?http://t.csdnimg.cn/gkJx7
?
?拖更好久了,抱歉,讓我偷了會懶
1. 自動化構建工具 make , makefile
make 是一個命令,makefile 是一個文件(在當前目錄下)
make 和 makefile 搭配使用可以實現自動化構建
?
a. 依賴關系
test 依賴于 test.c
b. 依賴方法
$@ : 指的是依賴關系的左邊
$^ : 指的是依賴關系的右邊
也可以直接寫成: gcc -o test test.c
c. 原理
make是如何工作的 ?
- 在默認的方式下,也就是我們只輸入make命令。那么, make會在當前目錄下找名字叫“Makefile”或“makefile”的文件 (前提是依賴關系第一個必須和要編譯文件有關)
- 如果找到,它會找文件中的第一個目標文件(target),并把這個文件作為最終的目標文件
- 如果文件不存在,或是這個文件所依賴的后面的文件修改時間要比前面這個文件老(可
以用 touch 測試,如: test 修改時間比test.c更加新),那么,他就會執行后面所定義的命令來生成前面這個文件
- make會一層又一層地去找文件的依賴關系,直到最終編譯出第一個目標文件
- 在找尋的過程中,如果出現錯誤,比如最后被依賴的文件找不到,那么make就會直接退出,并報錯,
而對于所定義的命令的錯誤,或是編譯不成功,make根本不理
d. make 判斷是否需要重新編譯
- 判斷源文件的修改時間和可執行文件的修改時間(如果源文件沒有修改:其修改時間比可執行文件早;如果源文件右修改:其修改時間比可執行文件晚)
- 如果源文件沒有修改,則再使用 make 是不會編譯的 ; 如果源文件有修改,則可以使用 make 重新編譯
三種時間:
- Access:
最近一次進入文件時間,包括進入文件,或者修改文件內容
- Modify:
最近一次修改文件內容的時間
注:
touch + 沒有創建的文件名
新創一個文件
touch + 有創建的文件名
更新時間
所以 touch 對 Modify 有影響
- Change:
最近一次修改文件屬性的時間
回車換行:
回車( \r ):光標回到這一行的最開始處
換行( \n ):光標跳到下一行的最開始處
e. 文件清理
- make clean
清理文件
注意:
我們將它設置為偽目標,用 .PHONY 修飾,偽目標的特性是,總是可以被
執行
2. git 工具
- git + clone + 倉庫里鏈接
與遠程倉庫鏈接
- git + add + 路徑 / git + add + 文件名
添加該路徑下的文件(沒有被添加過的)
- git + commit + -m + "標注信息"
提交改動到本地
注:
第一次使用git,可能會出現一些問題:
注:名字和郵箱換成自己的就好了
- git + push
提交到遠程倉庫里面