【问题标题】:Buildroot does not re-build modified filesBuildroot 不会重新构建修改过的文件
【发布时间】:2021-07-22 13:06:59
【问题描述】:

我正在使用外部树构建来开发 linux 内核驱动程序。我创建了一个 Config.in 和一个 kernel_driver.mk,一切似乎都运行良好,但我仍然有编译错误。 我一遍又一遍地迭代“make driver-dirclean / make driver”。 但是,我有这样的印象(现在我验证了这个事实),一旦我可以成功正确构建一次,那么 BR 就不会再次重建文件,即使我在这些文件中故意引入错误! 输出还显示: CC [M] /home/adva/work/sfpnid-drv/buildroot/output/build/hal-1.0.0/kernel/helper.o LD [M] /home/adva/work/sfpnid-drv/buildroot/output/build/hal-1.0.0/kernel/spidev.o 建筑模块,第 2 阶段。 MODPOST 1 个模块 CC [M] /home/adva/work/sfpnid-drv/buildroot/output/build/hal-1.0.0/kernel/spidev.mod.o LD [M] /home/adva/work/sfpnid-drv/buildroot/output/build/hal-1.0.0/kernel/spidev.ko

编译永远不会失败! 以某种方式存在缓存问题吗? rsync 效果?

谢谢, 雅克

【问题讨论】:

  • 对格式错误的消息感到抱歉......它让我感到惊讶:(

标签: build buildroot


【解决方案1】:

我终于找到了问题的根源。 当我使用离树构建时,我遇到了“清理”问题。我意识到依赖关系已在 BR/output/build/.. 环境中解决,而我的文件是在树外编辑的。 所以发生的情况是,一旦它成功构建了 1 次,那么 .o 就会出现在 BR 中。依赖关系得到满足,“make -rebuild 只会重新链接旧的 .o。 我需要执行“make -dirclean”,以便对新文件(有错误)进行 rsync。

至少我是这样理解的。 所以对我来说,这有点解决了。事实上,BR 实际上是一个集成工具,而不是一个开发环境。所以这种行为是可以理解的。

雅克

【讨论】:

    猜你喜欢
    • 2016-10-10
    • 2014-11-20
    • 1970-01-01
    • 2013-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-05
    • 1970-01-01
    相关资源
    最近更新 更多