Linux下的Makefile的簡單使用(簡單粗暴)

Makefile的簡介

Makefile 是和 make 命令一起配合使用的.
很多大型項目的編譯都是通過 Makefile 來組織的, 如果沒有 Makefile, 那很多項目中各種庫和代碼之間的依賴關係不知會多複雜.
Makefile的組織流程的能力如此之強, 不僅可以用來編譯項目, 還可以用來組織我們平時的一些日常操作. 這個需要大家發揮自己的想象力.

Makefile的通用結構

# 以‘#’開頭的行表示註釋

#定義變量VAR,強制賦值爲test
VAR=test

#在VAR之前定義的值後面再追加app這個值,這時該變量值擴展爲testapp
VAR+=app

#如果之前VAR沒有被定義,則定義並使用testapp;否則使用之前的值。
VAR?=testapp

#第一條目標爲總的目標
#依賴可以是文件(目錄)或爲其他目標
#動作可以是Linux命令,動作的那一行必須以TAB鍵開頭
target: depend1 depend2 depend3 …
【TAB】 action1
【TAB】action2

target1;
【TAB】action1
【TAB】action2

Mkfile的簡單示例

首先我們需要在linux下創建一個文件夾,裏面需要寫兩個.c文件和一個頭文件
hello.c文件代碼


#include <stdio.h>
#include "heard.h"

int main (int argc, char **argv)
{
    int a=5;
    int b=6;
    int c;

    c=add(&a,&b);

    printf("%d\n",c);
    printf("hello world\n");
    return 0;
} 

add.c的文件代碼

#include <stdio.h>

int add(int *a, int *b);

int add(int *a, int *b) 
{
    int c;
        
   c=(( *a)+( *b));

    return c;
}

heard.h的頭文件

int add(int *a, int *b);

在這裏插入圖片描述
在沒有學習makefile之前我們編譯的時候需要編譯運行的時候需要輸入
gcc hello.c gcc add.c -o test
如果我們每次運行都要輸入這一行,顯得很麻煩,如果我們使用makefile的使用會使這個變得更加簡單起來,

vim makefile

#定義變量
APP_NAME= test

cc=gcc

#這裏的all是整個makefile文件的第一個目標,也就是總的目標,當我們輸入make的命令時就是完成這個目標
all:
    ${cc} add.c hello.c -o ${APP_NAME}

#clean是一個單獨的目標,該目標沒有被總的目標all依賴或執行,所以默認該目標不會被執行,如果想執行該目標,則可以在Linux命令行下輸入make clean來執行
clean:
    rm -f ${APP_NAME}

當我們敲make的時候,就完成沒有學makefile的操作。
在這裏插入圖片描述
當我們敲make clean的時候,test就會被刪除
在這裏插入圖片描述
上面所講到的東西都是關於makefile的簡單使用,如果想要了解更多知識點,可以推薦大家一篇博客,供大家學習
Makefile的詳細介紹

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