我通过PuTTY和WinSCP连接到我大学的小型Linux集群,使用后者传输文件,并使用前者编译和运行它们.到目前为止,我的工作已在大学的实验室进行,但今天我在家里做了一些工作,产生了一个有趣的警告.
我上传了整个文件夹,在运行make命令后,我将其作为输出的最后一行:
make:warning:检测到时钟偏斜.您的构建可能不完整.
生成的二进制文件正常工作,并且在构建过程中似乎没有任何其他意外错误.
我似乎能够在上传一些新的/替换文件之后通过构建来触发错误(我在本地编辑所有内容然后上传新版本),所以我想知道它是否像文件修改时间不匹配一样简单?还是更关心的事情?
那么,我应该担心吗?我该如何修复/防止这种情况?
Tyl*_*nry 197
该消息通常表示您的某些文件的修改时间晚于当前系统时间.由于make在执行增量构建时通过检查源文件是否比其目标文件更新来进行修改来决定编译哪些文件,因此这种情况可能导致构建不必要的文件,或者更糟糕的是,不构建必需的文件.
但是,如果您从头开始构建(不进行增量构建),您可能会忽略此警告而不会产生任何后果.
Ser*_*ndt 20
make在服务器上运行Samba SMB CIFS共享时,这也发生在我身上.持久的解决方案包括在ntp服务器和客户端上安装守护程序.(请注意,这个问题并没有通过运行ntpdate来解决.这只会暂时解决时间差异,但将来不会解决.)
对于Ubuntu和Debian派生的系统,只需在命令行键入以下行:
$ sudo apt-get install ntp
Run Code Online (Sandbox Code Playgroud)
此外,仍然需要touch *在受影响的目录中发出一次(并且仅一次)命令以一劳永逸地更正文件修改时间.
$ touch *
Run Code Online (Sandbox Code Playgroud)
有关ntp和之间差异的更多信息ntpdate,请参阅:
Bri*_*era 11
简单方案:
# touch filename
Run Code Online (Sandbox Code Playgroud)
会做的都行.
欲了解更多信息:http: //embeddedbuzz.blogspot.in/2012/03/make-warning-clock-skew-detected-your.html
在终端中输入,它将解决问题:
find . -type f | xargs -n 5 touch
make clean
clean
Run Code Online (Sandbox Code Playgroud)
z *_* - 6
根据LinuxQuestions.org上的用户m9dhatter:
"make"使用文件的时间戳来确定它尝试编译的文件是旧的还是新的.如果你的时钟被刻录,它可能会有问题编译.
如果你尝试在时钟前几分钟修改另一台机器上的文件并将它们传输到你的机器然后尝试编译它可能会发出一个警告,说明该文件是从未来修改过来的.时钟可能会扭曲或有什么影响(不能忘记).你可能只是对违规文件这样做:
#touch <违规文件的文件名>
这里的其他答案很好地解释了这个问题,所以我在此不再重复.但是有一种解决方案可以解决它尚未列出的问题:只需运行make clean,然后重新运行make.
删除任何已经编译的文件将阻止make有任何文件来比较解决警告的时间戳.
| 归档时间: |
|
| 查看次数: |
194064 次 |
| 最近记录: |