我有一些源代码,我想在内核模块和用户空间程序中使用它们。我只想在我的源码树中维护该代码的一个副本。我在考虑将共享的源文件放在一个共享文件夹中(在内核树之外),让kbuild从外部目录构建这些文件,并在模块的目录中生成.o文件。有没有使用kbuild包含外部目录中的源文件的好方法?
我的目标目录将如下所示:
+ linux
| + drivers
| + foo
| + Makefile
| + foomain.c
| + foomain.o
| + shared.o
+ shared
| + shared.c
+ bar
+ Makefile
+ barmain.c
+ barmain.o
+ shared.o虽然可以将shared.c复制到foo目录中作为构建过程的一部分,但这似乎是一个丑陋的解决方案,我想知道是否有更好的方法。
发布于 2013-03-05 11:12:43
我认为这是可能的。
在共享目录下创建Makefile,支持为内核模块foo构建shared.o,为用户空间应用栏构建shared.o。
这意味着要在Makefile中创建两个不同的构建目标,这两个目标可以具有相同的名称,但需要使用宏,如KERNEL_BUILD来区分它们。
https://stackoverflow.com/questions/15205693
复制相似问题