linux内核源文件依赖,linux-kernel – 如何在Kbuild中为生成的源文件添加依赖项?...

还有一个问题:在尝试构建多文件模块时,您不能拥有与模块同名的C文件.将mymod.c重命名为mymod-core.c

然后,以下应该工作:

obj-m := mymod.o

mymod-objs := mymod-core.o mymod_test_interfaces.gen.o

$(obj)/mymod_test_interfaces.gen.c: $(src)/mymod_test.h $(src)/generate_testapi.py

$(src)/generate_testapi.py < $(src)/mymod_test.h > $@

我实际上测试了以下内容:

diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile

index 4387ccb79e64..47fdc3a73c75 100644

--- a/drivers/misc/Makefile

+++ b/drivers/misc/Makefile

@@ -71,3 +71,8 @@ OBJCOPYFLAGS_lkdtm_rodata_objcopy.o := \

--rename-section .text=.rodata

$(obj)/lkdtm_rodata_objcopy.o: $(obj)/lkdtm_rodata.o

$(call if_changed,objcopy)

+

+obj-m := mymod.o

+mymod-objs := mymod-core.o mymod_test_interfaces.gen.o

+$(obj)/mymod_test_interfaces.gen.c:

+ echo "int variable;" > $@

diff --git a/drivers/misc/mymod-core.c b/drivers/misc/mymod-core.c

new file mode 100644

index 000000000000..b39aa4b9ae8d

--- /dev/null

+++ b/drivers/misc/mymod-core.c

@@ -0,0 +1,19 @@

+#include

+#include

+

+extern int mymod_variable;

+

+static int mymod_probe(struct platform_device *pdev)

+{

+ mymod_variable = 2;

+

+ return 0;

+}

+

+static struct platform_driver mymod_driver = {

+ .driver = {

+ .name = "mymod",+ },+ .probe = mymod_probe,+};

+module_platform_driver(mymod_driver);

它恰当地导致:

$make

CHK include/config/kernel.release

CHK include/generated/uapi/linux/version.h

CHK include/generated/utsrelease.h

CHK include/generated/bounds.h

CHK include/generated/timeconst.h

CHK include/generated/asm-offsets.h

CALL scripts/checksyscalls.sh

CHK include/generated/compile.h

CC [M] drivers/misc/mymod-core.o

echo "int variable;" > drivers/misc/mymod_test_interfaces.gen.c

CC [M] drivers/misc/mymod_test_interfaces.gen.o

LD [M] drivers/misc/mymod.o

LD arch/x86/boot/compressed/vmlinux

ZOFFSET arch/x86/boot/zoffset.h

AS arch/x86/boot/header.o

LD arch/x86/boot/setup.elf

OBJCOPY arch/x86/boot/setup.bin

OBJCOPY arch/x86/boot/vmlinux.bin

BUILD arch/x86/boot/bzImage

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值