(P3)Linux開發工具 Makefle上

2021-10-06 23:03:25 字數 2927 閱讀 4224

target.

..:dependencies

command ..

.(1)目標target程式產生的檔案,如可執行檔案和目標檔案,中間檔案(

.s檔案);

目標也可以是要執行的動作,如:clean,也稱之為偽目標

(2)依賴depandencies是用來產生目標的輸入檔案列表,乙個目標通常依賴於多個檔案

(3)命令command是make執行的動作(命令是shell命令或者是可在shell下執行的程式)。

注意:每個命令列的起始字元必須為tab字元

(4)如果dependencies中有乙個或多個檔案更新的話,command就要執行,這就是makefile最核心的內容

目標檔案可以有1個或者多個

依賴檔案可以有1個或者多個,也可以沒有

只有main.c有**,**如下:

intmain

(void

)

.phony:clean		##顯示指定clean為乙個偽目標,怕該目錄下有個clean名字的檔案,不能編譯

main:main.o add.o sub.o

gcc -wall -g main.o add.o sub.o -o main

main.o:main.c

gcc -wall -g -c main.c -o main.o

add.o:add.c add.h

gcc -wall -g -c add.c -o add.o

sub.o:sub.c sub.h

gcc -wall -g -c sub.c -o sub.o

clean:

rm -f main main.o add.o sub.o

.phony:clean

objects=main.o add.o sub.o

main:$(objects)

gcc -wall -g $^

-o $@

main.o:main.c

gcc -wall -g -c $<

-o $@

add.o:add.c add.h

gcc -wall -g -c $<

-o $@

sub.o:sub.c sub.h

gcc -wall -g -c $<

-o $@

clean:

@echo "begin delete ..." ##該語句(echo "begin delete ..."

)不想列印出來,就在最前面加乙個@符號

rm -f main $(objects)

make		直接輸入make會執行第乙個目標

make main.o make +目標也可以執行,但是只執行該目標的命令

make makefile makefile檔案名字也可以是makefile

make clean -f makefile.

1 表示用makefile.

1中的規則來執行,指定makefile檔案

$@規則的目標檔名

$<

規則的第乙個依賴檔名

$^規則的所有依賴檔案列表

%

.o:%

.c

.c.o:
==

*****==

03make\02\01test.c==

====

====

intmain

(void)==

====

====

====

====

====

====

====

====

*****==

03make\02\02test.c==

====

====

====

=int

main

(void)==

====

====

====

====

====

pub.c和pub.h都為空

.phony:clean all

bin=

01test 02test ##直接執行:make makefile

all:$(bin) ##all也是偽目標,這裡並沒有給01test,02test是如何生成的,編譯器會自動推導,

clean: ##會將同名的.c檔案生成同名的可執行檔案,eg:01test.c生成01test

rm -f $(bin)

.phony:clean all

cc=gcc

cflags=

-wall -g

bin=

01test 02test

all:$(bin) ##all代表第乙個終極目標

%.o:

%.c ##將對應的.c檔案生成對應的.o檔案,等價於.c.o:

$(cc) $(cflags)

-c $<

-o $@

01test:

01test.o

$(cc) $(cflags) $^

-o $@ ##生成可執行檔案不需要-c

02test:

02test.o pub.o ##若02test還依賴pub模組(pub.c,pub.h)

$(cc) $(cflags) $^

-o $@

clean:

rm -f $(bin)

*.o

Linux開發工具 gdb和make

gdb主要有以下幾個方面的功能 1 啟動你的程式,可以按照你的自定義的要求隨心所欲的執行程式。2 可讓被除錯的程式在你所指定的調置的斷點處停住。斷點可以是條件表示式 3 當程式被停住時,可以檢查此時你的程式中所發生的事。4 你可以改變你的程式,將乙個bug產生的影響修正從而測試其他bug。進入gdb...

Linux開發工具

linux開發工具 vim gcc gdb make git github 文字編輯器 vim 功能最強大 1 使用 三種模式 命令列模式 插入模式 底行模式 vim 空格 檔名 例如vim hello.c 此時是命令列模式 無法插入資料 需要進入插入模式 按i或者a 退出插入模式 按esc 切換到...

嵌入式開發工具gdb和make

掌握嵌入式開發工具gdb和make的使用 1 嵌入式開發工具 gdb 2 嵌入式開發工具make 周五一天 gcc c 1.c gcc wall 1.c 檢查1.c 有沒有問題 a.out 執行 1.什麼是工程 專案?專案 多個原始檔 資源檔案構成的專案 2.如何編譯多個原始檔的 1000個原始檔,...