002编程基础----makefile
一、總述
make來構建和管理自己的軟件工程。
GNU的make能夠使整個軟件工程的編譯、鏈接只需要一個命令就可以完成。
make 在執行時,需要一個命名為Makefile的文件。
Makefile文件描述了整個工程的編譯,鏈接規則。包括:
1、工程中哪些文件需要編譯
2、需要創建哪些文件
3、如何創建這些文件
4、如何產生我們想要的可執行文件。
例如:
hello: main.o func1.o func2.o
gcc main.o func1.o func2.o -o hello
main.o:main.c
gcc -c main.c
fun1.o:func1.c
gcc -c func1.c
func2.o:func2.c
gcc -c func2.c
二、Makefile術語
1、規則:用于說明如何生成一個或多個目標文件,格式如下:
target:prerequisites
command
即,目標 ?依賴 ?命令
main.o:main.c
gcc -c main.c ? ?命令需要tab鍵
make命令默認在當前目錄下尋找名字為makefile或者Makefile的工程文件,當名字不為兩者之一時,可以使用如下方法指定:
make -f 文件名
2、偽目標
Makefile中把那些沒有任何依賴只有執行動作的目標稱為“偽目標”(phony targets)。
.PHONY : clean
clean:
rm -f hello main.o func1.o func2.o
".PHONY"將“clean”目標聲明為偽目標。
3、變量
obj=main.o func1.o func2.o func3.o
hello:$(obj)
gcc $(obj) -o hello
另外,makefile中,存在系統默認的自動化變量
$^:代表所有的依賴文件
$@:代表目標
$<:代表第一個依賴文件
改寫:
hello:main.o func1.o func2.o
gcc $^ -o $@
4、雜項
makefile中“#”字符后的內容被視作注釋
hello:hello.c
@gcc $^ -o $@
第一個“@”用于取消回顯。
轉載于:https://www.cnblogs.com/liutianyi10/p/3837969.html
總結
以上是生活随笔為你收集整理的002编程基础----makefile的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一张图看懂AR至GL数据流
- 下一篇: jquery获取select中的opti