# 列出當前目錄下所有*.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...