【问题标题】:makefile C , gcc [duplicate]makefile C,gcc [重复]
【发布时间】:2016-05-09 22:58:46
【问题描述】:

我在使用 makefile 时遇到问题。 我不知道为什么真的。

我的模块分布如下:

ma​​in.c:

#include "LL.h"

LL.c:

#include "LL.h"

LL.h:----

生成文件:

#makefile

a.out: main.o LL.o
    gcc main.o LL.o

main.o: main.c LL.h
    gcc -g -c main.c

LL.o: LL.c LL.h
    gcc -g -c LL.c

我正在使用带有 ubuntu 的虚拟机,与 windows 时钟相比,时钟确实失效了。

我在标准输出上收到这条消息:

make: 警告:文件 `a.out' 未来的修改时间为 3.8e+03 s

make: `a.out' 是最新的。

make:警告:检测到时钟偏差。您的构建可能不完整。

有时会继续尝试链接/编译某些 make 行。

寻求启发 谢谢;)

【问题讨论】:

标签: c makefile


【解决方案1】:

make 程序使用修改时间戳来检查文件是否早于其依赖项。如果文件的时间戳位于未来,make 会发出您观察到的警告。

解决此问题的方法是确保虚拟机中的时钟与主机上的时钟保持一致。考虑使用 NTP 将两个时钟与外部参考时钟同步。

为了缓解一个构建的这个问题,touch 所有源文件,所以它们的时间戳被重置为现在:

touch *.c *.h

【讨论】:

  • 好吧!谢谢,我尝试安装 NTP,但不幸的是我没有权限。无论如何,谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-29
  • 1970-01-01
  • 1970-01-01
  • 2020-11-01
  • 1970-01-01
相关资源
最近更新 更多