【问题标题】:Compiling Linux Buildroot overrides local changes编译 Linux Buildroot 会覆盖本地更改
【发布时间】:2018-05-06 09:23:15
【问题描述】:

我正在努力在我的专有 Linux 发行版中启用 kexec 支持,并且我想在用户空间中调试 kexec 工具。我在位于 buildroot/output/build/kexec-2.0.15/kexec/kexec.c 的 kexec.c 中添加调试打印,但如果我使用 make 进行增量构建,看起来 kexec 二进制文件没有更新。如果我使用make all 从头开始​​重建所有内容,源代码 kexec.c 已被覆盖,我看不到我的更改。我的猜测是,每个完整的构建都会重新提取 kexec 包,这就是我的更改没有生效的原因。

我该如何解决这个问题?

【问题讨论】:

    标签: linux buildroot


    【解决方案1】:

    尝试使用“make kexec-rebuild”。

    【讨论】:

      【解决方案2】:

      如果您只想从其重新启动包的构建过程 编译步骤,你可以运行 make <package>-rebuild [...]。它将重新启动编译和安装 包,但不是从头开始:它基本上重新执行 make 和 make install 在包内,所以它只会重建文件 改变了。

      [...]

      Buildroot 在内部创建所谓的标记文件来跟踪 每个包都完成了哪些构建步骤。他们是 存储在包构建目录中, output/build/-/ 并命名为 .stamp_。 上面详述的命令只是简单地操作这些标记文件以 强制 Buildroot 重新启动包构建的一组特定步骤 过程。

      (来自 Buildroot 手册,Understanding how to rebuild packages 部分——我建议你阅读整个部分)

      另外,请查看您的构建日志。如果你没有看到类似的行

      >>> kexec 2.0.16 Building

      那么 kecxec 包还没有(重新)构建。

      【讨论】:

        猜你喜欢
        • 2013-03-24
        • 1970-01-01
        • 2016-12-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-09
        • 1970-01-01
        相关资源
        最近更新 更多