Makefile -C und M Optionen

Der folgende Code stammt aus 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;

Wenn das Ziel von make alles ist, gibt -C (BASEINCLUDE) an, zum Kernel-Quellverzeichnis zu springen und dort das Makefile zu lesen; M = (BASEINCLUDE) gibt an, zum Kernel-Quellverzeichnis zu springen und das Makefile dort zu lesen; M =( B A S E das I N C L die U- D E ) bezieht sich auf den nächsten Hop überführt , um den Kernquellencodeziel Aufzeichnung der Lese genommen , dass in der M A K E F I L E ; M= (PWD) zeigt an und kehrt dann zum aktuellen Verzeichnis zurück, um mit dem Lesen und Ausführen des aktuellen Makefiles fortzufahren.

Nach der Kompilierung wird schließlich mydemo_misc.ko generiert.

Zusätzlich:
mydemo_misc-objs: = mydemodrv_misc.o Das vorherige mydemo_misc ist der Name der kompilierten Datei, es sollte ein fester Wortlaut sein und die Kompilierung schlägt nach der Änderung fehl

Ich denke du magst

Origin blog.csdn.net/xingzhibo/article/details/109094602
Empfohlen
Rangfolge