c 远程编辑linux文件,makefile - 在远程Linux机器上编译C ++ - “检测到时钟偏差”警告...

makefile - 在远程Linux机器上编译C ++ - “检测到时钟偏差”警告

我通过PuTTY和WinSCP连接到我大学的小型Linux集群,使用后者传输文件,并使用前者编译和运行它们。 到目前为止,我的工作已在大学的实验室进行,但今天我在家里做了一些工作,产生了一个有趣的警告。

我上传了一个完整的文件夹,在运行make命令后,我将其作为最后一行输出:

make:warning:检测到时钟偏斜。 您的构建可能不完整。

生成的二进制文件正常工作,并且在构建过程中似乎没有任何其他意外错误。

我似乎能够在上传一些新的/替换文件之后通过构建来触发错误(我在本地编辑所有内容然后上传新版本),所以我想知道它是否像文件修改时间不匹配一样简单? 还是更关心的事情?

那么,我应该担心吗? 我该如何修复/防止这种情况?

DMA57361 asked 2019-05-06T01:42:07Z

12个解决方案

180 votes

该消息通常表示您的某些文件的修改时间晚于当前系统时间。 由于make在执行增量构建时通过检查源文件是否比其目标文件更新来修改来决定编译哪些文件,因此这种情况可能导致构建不必要的文件,或者更糟糕的是,不构建必需的文件。

但是,如果您从头开始构建(不进行增量构建),您可能会忽略此警告而不会产生任何后果。

Tyler McHenry answered 2019-05-06T01:42:30Z

51 votes

通常,这会在NFS安装目录中构建时发生,并且客户端和NFS服务器上的时钟不同步。

解决方案是在NFS服务器和所有客户端上运行NTP客户端。

janneb answered 2019-05-06T01:43:00Z

18 votes

安装网络时间协议

在服务器上的Samba SMB CIFS共享上运行ntp时,这也发生在我身上。持久解决方案包括在服务器和客户端上安装ntpdate守护程序。(请注意,运行ntpdate无法解决此问题。这只能暂时解决时间差异,但将来不会解决。)

对于Ubuntu和Debian派生的系统,只需在命令行键入以下行:

$ sudo apt-get install ntp

此外,仍然需要在受影响的目录中发出一次(并且仅一次)命令ntp以一劳永逸地更正文件修改时间。

$ touch *

有关ntp和ntpdate之间差异的更多信息,请参阅:

与NTP进行时间同步

如何在Ubuntu 16.04上设置时间同步

Serge Stroobandt answered 2019-05-06T01:44:07Z

10 votes

简单解决方案

# touch filename

会做的都行。

欲了解更多信息:[http://embeddedbuzz.blogspot.in/2012/03/make-warning-clock-skew-detected-your.html]

Brijesh Valera answered 2019-05-06T01:44:40Z

6 votes

根据LinuxQuestions.org上的用户m9dhatter:

“make”使用文件的时间戳来确定文件是否存在   它试图编译是旧的还是新的。 如果你的时钟被刻录,它可能会有问题编译。

如果你尝试在时钟前几分钟修改另一台机器上的文件并将它们传输到你的机器然后尝试编译它可能会发出一个警告,说明该文件是从未来修改过来的。 时钟可能会扭曲或有什么影响(不能忘记)。 你可能只是对违规文件这样做:

#touch<违规文件的文件名>

z - answered 2019-05-06T01:45:26Z

6 votes

这里的其他答案很好地解释了这个问题,所以我在此不再重复。 但有一个解决方案可以解决它尚未列出:只需运行make clean,然后重新运行make。

删除任何已经编译的文件将阻止make有任何文件来比较解决警告的时间戳。

skrrgwasme answered 2019-05-06T01:45:59Z

3 votes

我过去曾经有这个 - 因为机器上有时钟。 考虑设置NTP,以便所有计算机都具有相同的时间。

Ed Heal answered 2019-05-06T01:46:24Z

2 votes

这通常只是由于主机和客户端计算机之间的时间不匹配。 您可以尝试使用ntp同步计算机上的时间。

Soo Wei Tan answered 2019-05-06T01:46:49Z

1 votes

解决方案是运行NTP客户端,只需运行如下命令即可

#ntpdate 172.16.12.100

172.16.12.100是ntp服务器

Surjit answered 2019-05-06T01:47:21Z

0 votes

检查汇编的结果,例如 somefile.o比源文件旧,例如somefile.c。 上面的警告意味着有关文件时间戳的内容很奇怪。 大学服务器的系统时钟可能与您的时钟不同,例如 在下午1点推送一个文件,修改日期是下午2点。 您可以通过键入日期在控制台上查看时间。

fschmitt answered 2019-05-06T01:47:47Z

0 votes

更换计算机中的手表电池。 当看到主板上的硬币电池需要更换时,我看到了这个错误信息。

BlushONine answered 2019-05-06T01:48:12Z

-3 votes

这发生在我身上。 这是因为我跑了make -j 4并且一些工作无法完成。 使用-j选项时,应该会出现此警告。

kilojoules answered 2019-05-06T01:48:38Z

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值