【makefile】makefile實際用法/寫法

makefile:makefile通過編譯和鏈接來運行程序;

陳浩老師有一篇博客在makefile原理這塊寫的很清楚:https://blog.csdn.net/haoel/article/details/2886

編譯:源文件編譯成中間代碼文件,在Window下就是.obj文件,Unix下是.o文件,即Object File

鏈接:把大量的Object File合成執行文件

我有一篇博客很詳細的寫了代碼的運行過程:https://blog.csdn.net/weixin_40740059/article/details/84075653

那麼makefile到底是如何使用的呢?

圖中是一個hello world代碼,可以用 gcc main.c -o main來進行運行,生成可執行文件之後,用./main執行即可!

如果用makefile來進行運行,首先了解makefile書寫的規則:

target: dependencies
    command

//target:目標文件,在上圖中,也就是main

//!注意,冒號後要加空格

//dependencies:文件依賴,main的生成要依賴main.c

//command前面要加Tab鍵,不可以用空格!

//command:也就是我們用gcc編譯時的命令
//    即:  gcc main.c -o main

首先創建一個makefile,然後來運行hello word 代碼:

main: main.c
    gcc main.c -o main

輸出make後,會自動運行command命令,生成main的可執行文件

以上就是最基礎一個makefile了,那麼如果是一個大項目中包含.h,.c,.o要如何運行呢?

makefile:寫一個求最小值的代碼

創建find_min.h,find_min.c,main.c三個文件

依次分別爲find_min.h,find_min.c,main.c中的代碼;

gcc main.c find_min.c -o main運行後得到main可執行文件,./main執行

用makefile來運行:

main: main.c find_min.o
    gcc main.c find_min.o -o main
//main的生成依賴main.c 和 find_min.o
//command中用main.c和find_min.o來生成main可執行文件

find_min.o: find_min.c
    gcc -c find_min.c
//在一開始的main中存在依賴關係的是find_min.o
//那麼,如何生成find_min.o呢?command中用-c命令實現

運行make命令後,生成main的可執行文件,運行得出結果!

關於$(cc)和gcc區別:

    在這個例子中我們用的是gcc編譯,如果要用g++編譯的時候,一句句對gcc進行更換十分麻煩,所以選擇用CC表示gcc

CC = gcc

$(CC)表示

同樣可以運行

關於make clean:

clean: 
    rm main
//同樣要用Tab鍵

完整運行後,輸出make clean命令就可以刪除main可執行文件

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章