【问题标题】:linux kbuild makefilelinux kbuild 生成文件
【发布时间】:2012-02-27 13:35:21
【问题描述】:

我想根据 menuconfig 选择的标志编译并链接到单个目标文件以编译不同的源文件。

喜欢;

obj-$(config1) : sample.o(但它应该从 sample_1.c 构建) obj-$(config2) : sample.o(但它应该从 sample_2.c 构建)

是否可以通过 makefile 或者如果无法通过 linux kbuild 任何技巧来实现这一点,我们非常感谢。

rgds, 夏拉努

【问题讨论】:

  • 有几种方法可以做到这一点,没有一种是完美的。我们需要有关您的意图/优先事项的更多信息。为什么要为两个不同的文件使用名称sample.o
  • 我不想更改加载模块的脚本文件,因为有很多依赖项。相反,它必须加载单个模块,但根据编译指令构建。
  • 对此的任何解决方案甚至都不完美......

标签: makefile


【解决方案1】:

我不知道自动执行此操作,但是,Kbuild 文件是 Makefile,因此您可以在其中使用 Makefile 条件。你可以这样做:

ifneq ($(findstring $(config1),"ym"),)
  $(obj)sample.o: $(obj)sample_1.o
      $(Q)$(CC) $(CFLAGS) $< -c -o $@
else
ifneq ($(findstring $(config2),"ym"),)
  $(obj)sample.o: $(obj)sample_2.o
      $(Q)$(CC) $(CFLAGS) $< -c -o $@
endif
endif

obj-($config1) += sample.o
obj-($config2) += sample.o

希望对你有帮助

约翰

【讨论】:

    猜你喜欢
    • 2017-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-08
    相关资源
    最近更新 更多