linux - Kbuild - 包括外部目录中的源文件

标签 linux makefile kbuild

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

最佳答案

我认为这是可能的。

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

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

关于linux - Kbuild - 包括外部目录中的源文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15205693/

相关文章:

c - 我如何在 linux 中搜索常量定义(在 c 包含文件中)

c++ - 我可以在目录和子目录中搜索头文件吗?

linux - 如何在 linux makefile 中设置环境变量

cmake : specify linux kernel module output build directory

linux - 根据另一个 .csv 中的模式从 .csv 中排除行

php - MediaWiki 安全 : Alternate file ayout

makefile 执行另一个目标

linux - 当 CONFIG_IKCONFIG 设置为模块(=m)时,如何从内核镜像文件中提取配置?

linux - 如何从 Linux 内核镜像获取 .config?

linux脚本计数器问题