0

我有一些源代码,我想用于内核模块和用户空间程序。我只想在我的源代码树中维护该代码的一个副本。我正在考虑将共享源文件放在共享文件夹中(内核树之外),让 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 目录中,但这似乎是一个丑陋的解决方案,我想知道是否有更好的方法。

4

1 回答 1

0

我认为这是可能的。

在shared目录下创建一个Makefile,可以支持为内核模块foo构建shared.o和为用户空间应用bar构建shared.o。

这意味着要在 Makefile 中创建两个不同的构建目标,这两个目标可以具有相同的名称,但需要使用 KERNEL_BUILD 等宏来区分它们。

于 2013-03-05T03:12:42.807 回答