一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看

簡(jiǎn)單的驅動(dòng)makefile詳解

時(shí)間:2024-11-04 20:03:02 Linux認證 我要投稿
  • 相關(guān)推薦

簡(jiǎn)單的驅動(dòng)makefile詳解

  一個(gè)工程中的源文件不計數,其按類(lèi)型、功能、模塊分別放在若干個(gè)目錄中,makefile定義了一系列的規則來(lái)指定,哪些文件需要先編譯,哪些文件需要后編譯,哪些文件需要重新編譯,甚至于進(jìn)行更復雜的功能操作,因為 makefile就像一個(gè)Shell腳本一樣,其中也可以執行操作系統的命令。

  Linux 2.6 (PC)簡(jiǎn)單驅動(dòng)Makefile詳解

  ifneq ($(KERNELRELEASE),)

  module-objs := book.o

  obj-m := book.o

  else

  KERNELDIR ?= /lib/modules/$(shell uname -r)/build

  PWD := $(shell pwd)

  modules:

  $(MAKE) -C $(KERNELDIR) M=$(PWD) modules

  endif

  clean:

  rm -rf *.o *~core.depend.*.cmd *.ko *.mod.c.tmp versions

  KERNELRELEASE 內核頂層目錄Makefile的一個(gè)變量。

  KERNELDIR ?= /lib/modules/$(shell uname -r)/build

  內核源碼樹(shù)目錄。

  該Makefile 共讀取兩次,在輸入Makefile時(shí),$(KERNELDIR) 第一次讀取KERNELRELEASE并沒(méi)有被定義,然后就開(kāi)始讀取內核源碼的目錄,開(kāi)始定義KERNELRELEASE,然后到當前模塊的目錄里面,M=$(PWD) 進(jìn)入該Makefile時(shí)KERNELRELEAS已經(jīng)被定義了,讀取要編譯的模塊,然后再返回到modules

  編譯完成,產(chǎn)生.KO文件

  Linux 2.6 (ARM)簡(jiǎn)單驅動(dòng)Makefile詳解

  ifneq ($(KERNELRELEASE),)

  obj-m := fgpio011.o

  else

  KDIR := /home/linux-2.6.30/

  all:

  make -C $(KDIR) M=$(PWD) modules ARCH=arm CROSS_COMPILE=arm-linux-

  clean:

  rm -f *.ko *.o *.mod.o *.mod.c *.symvers

  endif

  注釋?zhuān)?/p>

  KDIR := /home/linux-2.6.30/

  KDIR 指定開(kāi)發(fā)板內核所在目錄。

  CROSS_COMPILE=arm-linux- 指定編譯器。

  其它項目與PC機的一樣。

  驅動(dòng)模塊編譯進(jìn)內核

【簡(jiǎn)單的驅動(dòng)makefile詳解】相關(guān)文章:

最簡(jiǎn)單的Linux驅動(dòng)程序09-09

javascript 單例模式詳解及簡(jiǎn)單實(shí)例08-17

顯卡驅動(dòng)怎么更新09-20

as用法詳解07-21

that用法詳解09-01

xp系統安裝mtp驅動(dòng)06-15

顯示器的驅動(dòng)故障10-25

電腦怎樣安裝聲卡驅動(dòng)10-13

古琴指法詳解05-26

眼神禮儀的詳解08-07

一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看