首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在远程Linux机器上编译C++ -“检测到时钟偏差”警告

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

Stack Overflow用户
提问于 2010-09-30 02:02:59
回答 14查看 247.1K关注 0票数 183

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

我上传了一个完整的文件夹,在运行make命令时,我得到以下输出的最后一行:

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

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

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

所以,我应该担心吗?如何修复/防止此问题?

EN

回答 14

Stack Overflow用户

回答已采纳

发布于 2010-09-30 02:06:51

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

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

票数 236
EN

Stack Overflow用户

发布于 2011-09-28 18:41:01

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

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

票数 62
EN

Stack Overflow用户

发布于 2014-01-26 23:53:14

安装网络时间协议

在服务器上的Samba SMB CIFS共享上运行make时,我也遇到了这种情况。持久的解决方案包括在服务器和客户端上安装ntp守护进程。(请注意,运行ntpdate并不能解决此问题。这只会暂时解决时间差,但不会在将来解决。)

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

代码语言:javascript
复制
$ sudo apt install ntp

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

代码语言:javascript
复制
$ touch *

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

票数 29
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3824500

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档