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