make -凯发app官方网站

凯发app官方网站-凯发k8官网下载客户端中心 | | 凯发app官方网站-凯发k8官网下载客户端中心
  • 博客访问: 3617601
  • 博文数量: 880
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 6155
  • 用 户 组: 普通用户
  • 注册时间: 2016-11-11 09:12
个人简介

to be a better coder

文章分类

(880)

  • (39)
  • (841)
文章存档

(5)

(60)

(175)

(207)

(210)

(142)

(81)

相关博文
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·

分类: linux

2021-06-03 14:49:12

编译某一个模块:make -c /lib/modules/3.18.92/build/ m=`pwd` modules
编译内核源码:make -j64             make modules_install           make install

在2.4内核中,只要自己写了driver,最多需要kernel头文件来配合编译。通常的cflags为:
=-d__kernel__ -i$(kdir) /include -dmodule

但在2.6下面,不再是这样。 模块的编译需要依赖配置过的内核源码,编译过程首先会到内核源码目标下,读取顶层的makefile文件
module编译模板如下:
#makefile for linux2.6
ifneq ($(kernelrelease),)
# call from kernel build system
scull-objs := main.o pipe.o access.o
obj-m := scull.o
else
kerneldir ?= /lib/modules/$(shell uname -r)/build
pwd := $(shell pwd)
modules:
$(make) -c $(kerneldir) m=$(pwd)
clean: rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c.tmp_versions
endif

解释:
kernelrelease:由kernel顶层makefile中定义。
第一次运行中,kernelrelease没有被定义,所以进入else
$(make) -c $(kerneldir)m=$(pwd)
此处读取kerneldir中的顶层makefile。读取后又返回本目录。继续执行本目录makefile。
则此时kernelrelease被定义。进入if.
if和else之间的为kbuild语法的语句.
阅读(2374) | 评论(0) | 转发(0) |
0

上一篇:

下一篇:

给主人留下些什么吧!~~
")); function link(t){ var href= $(t).attr('href'); href ="?url=" encodeuricomponent(location.href); $(t).attr('href',href); //setcookie("returnouturl", location.href, 60, "/"); }
网站地图