gpt4 book ai didi

linux - 重定向 linux 模块构建的输出

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:38:34 25 4
gpt4 key购买 nike

我想重定向我的模块构建的输出,以将工件与源分离。

我的 makefile 看起来像:

    obj-m += hello-1.o

all:
make ARCH=arm CROSS_COMPILE=arm-eabi- -C /work/TI-Android-ICS-4.0.3_AM37x_3.0.0/kernel M=$(PWD) modules

clean:
make ARCH=arm CROSS_COMPILE=arm-eabi- -C /work/TI-Android-ICS-4.0.3_AM37x_3.0.0/kernel M=$(PWD) clean

这工作正常,除了模块输出恰好在我的源目录中。我尝试在每一行中添加 O={path to my output dirctory},但随后无法使用类似...

ERROR: Kernel configuration is invalid. include/generated/autoconf.h or include/config/auto.conf are missing. Run 'make oldconfig && make prepare' on kernel src to fix it.

WARNING: Symbol version dump /work/development/linux/driver/blah/Module.symvers is missing; modules will have no dependencies and modversions.

我假设这是因为模块构建中使用了一些来自内核构建的输出文件,并且使用“O=”更改输出目录会与之发生冲突。

有没有一种方法可以使用现有的构建基础架构来完成此任务?

最佳答案

查看 the module system 的文档,看起来不太好。也许您可以将 .config 复制到您的构建目录中,然后执行 make oldconfig && make modules-prepare 并设置 O=


或者,如果您从另一个目录运行 make 会发生什么情况?

/somewhere/else$ make -C /path/to/kernel ARCH=arm CROSS_COMPILE=arm-eabi- M=/your/module/dir modules

关于linux - 重定向 linux 模块构建的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11676391/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com