Makefile-CおよびMオプション

次のコードは、Linuxの実行から取得したものです

BASEINCLUDE ?= /home/ben/work/runninglinuxkernel_4.0
#BASEINCLUDE ?= /lib/modules/`uname -r`/build

mydemo_misc-objs := mydemodrv_misc.o 

obj-m	:=   mydemo_misc.o
all : 
	$(MAKE) -C $(BASEINCLUDE) M=$(PWD) modules;

clean:
	$(MAKE) -C $(BASEINCLUDE) SUBDIRS=$(PWD) clean;
	rm -f *.ko;

makeのターゲットがすべての場合、-C (BASEINCLUDE)は、カーネルソースディレクトリにジャンプしてMakefileを読み取ることを示します。M=(BASEINCLUDE)は、カーネルソースディレクトリにジャンプしてMakefileを読み取ることを示します。M=B A S E I N C L U- D Eがを指すのホップに転送するコアソースコードレコード読み取りが取られ、その中にM A K E F I L E M=(PWD)は、現在のディレクトリに戻って、現在のMakefileの読み取りと実行を続行することを示します。

コンパイル後、mydemo_misc.koが最終的に生成されます。

さらに:
mydemo_misc-objs:= mydemodrv_misc.o前のmydemo_miscはコンパイルされたファイルの名前であり、固定された表現である必要があり、変更後にコンパイルが失敗します

おすすめ

転載: blog.csdn.net/xingzhibo/article/details/109094602