Linux中makefile项目管理
一、makefile的編寫:一個規(guī)則? ?兩個函數(shù)? 三個變量
1. 一個規(guī)則
?? ??? ?三要素: 目標, 依賴, 命令
?? ??? ?目標:依賴
?? ??? ??? ?命令
?? ??? ?1) 第一條規(guī)則是用來生成終極目標的規(guī)則
?? ??? ??? ??? ?1>. 如果規(guī)則中的依賴不存在, 向下尋找其他的規(guī)則,
?? ??? ??? ??? ?2>. 更新機制: 比較的是目標文件和依賴文件的時間? ? ? ??
2. 兩個函數(shù)
?? ??? ?1)?查找指定目錄下, 指定類型的文件
?? ??? ??? ??? ?src=$(wildcard ~/aa/*.c)
?? ??? ?2)匹配替換函數(shù)
?? ??? ??? ??? ?obj=$(patsubst %.c, %.o, $(src))
3. 三個自動變量
?? ??? ?1)$<: 規(guī)則中的第一個依賴
?? ??? ?2)?$^: 規(guī)則中的所有依賴
?? ??? ?3)$@: 規(guī)則中的目標
?? ??? ?只能在規(guī)則中的命令中使用
4. 模式規(guī)則
?? ??? ?%.o:%.c
?? ??? ??? ?gcc -c $< -o $@
?
?? ??? ??? ??? ?子目標和終極目標的關系:
?? ??? ??? ??? ?更新目標的原則:
3、makefile中變量的使用
? ? ? 例如:
? ? ? app:main.o sub.o mul.o
? ? ? ? ? gcc main.o sub.o mul.o -o app
? ? ? ? ? gcc $^ -o $@
?? ??? ?
? ? ? %.o:%.c?
? ? ? ? ? gcc -c $< -o $@
? ? ? makefile中的自動變量
? ? ? $<: 規(guī)則中的第一個依賴
? ? ? $@: 規(guī)則中的目標
? ? ? $^: 規(guī)則中的所有依賴
? ? ? 只能在規(guī)則的命令中使用
總結
以上是生活随笔為你收集整理的Linux中makefile项目管理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 对typedef void (*sigh
- 下一篇: main函数第3个参数envp装的是什么