0

我对 unix 内核编译有疑问。我们正在为进程设计一种调度算法。我们改变了 fork.c ,sched.c 的内容。然而,虽然内核编译后更新了 fork.c,但 sched.c 保持不变。我在网上搜索过此类问题,但找不到解决方案。如果你们中有人对这个主题有想法,我将非常高兴。

谢谢 !

4

1 回答 1

0

假设您make用于构建内核:

make如果依赖项的时间戳早于现有目标文件,则可能会跳过目标的制作。

如果您编辑了一些源文件,并且make没有将其重新编译为新的目标文件,您应该检查主机的时钟并清除可能具有未来时间戳的文件。

在您的情况下,您希望sched.c在内核编译期间发生更改,对吗?这是非常少见的,因为通常源未被触及而目标文件被更改。也许这会导致一些奇怪的循环依赖,从而阻止想要的动作:

sched.c : sched.c
        command_to_edit -i sched.c -o sched.c

也许make不会构建sched.c,因为目标(sched.c)的时间戳与依赖项(sched.c)的时间戳相同。

于 2013-01-03T15:03:43.947 回答