Linux中Makefile萬能寫法

2021-10-08 05:11:24 字數 1554 閱讀 9466

# 列出當前目錄下所有*.c檔案

src := $(wildcard *.c)

# 將所有*.c檔案轉為*.o檔案

obj := $(patsubst %.c, %.o, $(src))

# 指定編譯器

cc = gcc

# 指定鏈結器

cclink = g++

# 指定編譯屬性

cflags = -g -wall

# 指定編譯輸出的可執行程式名稱

outname := helloworld

all: $(obj)

$(cclink) $(cflags) $^ -o $(outname)

$(obj): %.o:%.c

$(cc) $(cflags) -c $^ -o $@

.phony:clean

clean:

rm *.o $(outname)

src := $

obj := $

cc = arm-linux-gcc

cclink = arm-linux-ld

cflags = -g -c -wall

all: $(obj)

$(cclink) -wall $^ -o all.bin

$(obj): %.o:%.c

$(cc) $(cflags) $^ -o $@

.phony:clean

clean:

rm *.o all all.bin

# 指定模組名稱

obj-m         := helloworld.o

# 指定核心原始碼目錄

kdir          := /lib/modules/$(shell uname -r)/build

# 指定將編譯輸出到當前目錄

pwd           := $(shell pwd)

all:

make -c $(kdir) m=$(pwd) modules

.phony:clean

clean:

make -c $(kdir) m=$(pwd) modules clean

# 指定模組名稱

obj-m         := helloworld.o

# 指定編譯平台

arch          := arm

# 指定交叉編譯器

cross_compile := arm-linux-

# 指定核心原始碼目錄

kdir          := /opt/embeded/dts-demo/linux-4.0.1

# 指定將編譯輸出到當前目錄

pwd           := $(shell pwd)

all:

make arch=$(arch) cross_compile=$(cross_compile) -c $(kdir) m=$(pwd) modules

.phony:clean

clean:

make -c $(kdir) m=$(pwd) modules clean

————————————————

嵌入式Linux中Makefile萬能寫法

對於linux系統中使用gcc進行編譯 列出當前目錄下所有 c檔案 src wildcard c 將所有 c檔案轉為 o檔案 obj patsubst c,o,src 指定編譯器 cc gcc 指定鏈結器 cclink g 指定編譯屬性 cflags g wall 指定編譯輸出的可執行程式名稱 ou...

Linux中的Makefile介紹

1.makefile介紹 在linux中使用make命令來編譯程式,特別是大程式 而make命令所執行的動作依賴於makefile檔案。最簡單的makefile檔案如下 hello hello.c gcc o hello hello.c 以tab鍵縮排 clean rm f hello 以tab鍵縮...

Linux中Makefile的使用

我也是初學linux,對linux中的編譯產生的一定的厭煩,正巧遇到了makefile。一 makefile的引入 我們現在已有main.c,mymath.c,mymath.h三個檔案,想要此程式能正常執行就需要輸入以下命令進行編譯連線。但是當檔案多了之後就可能需要多個檔名,會產生極大的麻煩。有了m...