make[1]: warning: Clock skew detected. Your build may be incomplete.

make[1]: warning: Clock skew detected. Your build may be incomplete.

其实之前就曾经发现过这个问题,当时没有仔细研究……

今天又一次见到这个问题:

我需要重新编译一个模块,里面有的代码需要替换,我就从邮件里面用别人发给我的代码替换掉了服务器上的代码,然后make,就会报上面的错。

原因:

首先,我从邮件另存为到桌面,这个时候是重新write了一个新文件,也就是说最后修改时间是当前操作时间;

我的Win系统和服务器时间有差别,而且是Win比较超前,也就是在服务器看来,Win已经在“未来”了;

我将Win下的文件替换掉服务器上的文件,然后make,make发现这个文件居然是来自未来的….

恩,大概就是这么个意思。

看下中英文两种报错吧($LANG):


[test1280@localhost smpinit]$ rz -E
rz waiting to receive.
[test1280@localhost smpinit]$ make
make[1]: Entering directory `/home/test1280/cmin02sms/src/smpinit'
make[1]: Warning: File `smpinit.C' has modification time 44 s in the future
Compiling smpinit.C... OK
……
--->>>>>>>>> MAKE OK <<<<<<<<<---
make[1]: warning:  Clock skew detected.  Your build may be incomplete.
make[1]: Leaving directory `/home/test1280/cmin02sms/src/smpinit'

关键:

make[1]: Warning: File `smpinit.C' has modification time 47 s in the future
make[1]: warning:  Clock skew detected.  Your build may be incomplete.

[test1280@localhost smpinit]$ rz -E
rz waiting to receive.
[test1280@localhost smpinit]$ make
make[1]: Entering directory `/home/test1280/cmin02sms/src/smpinit'
make[1]: Warning: File `smpinit.C' has modification time 47 s in the future
Compiling smpinit.C... OK
……
--->>>>>>>>> MAKE OK <<<<<<<<<---
make[1]: 警告:检测到时钟错误。您的创建可能是不完整的。
make[1]: Leaving directory `/home/test1280/cmin02sms/src/smpinit'

关键:

make[1]: Warning: File `smpinit.C' has modification time 47 s in the future
make[1]: 警告:检测到时钟错误。您的创建可能是不完整的。

假设:

1.服务器现在的时间戳是10;

2.Win的时间戳是100;

3.我在Win上创建了一个文件,那modify的时间必然是100(当然,实际是大于100,不考虑这个);

4.将时间戳是100的文件拿到服务器上,然后make,make发现,咦,有个来自未来的文件,这个文件的modify-time是未来的某个时间戳(100),于是给一个警告;

下面是重现一次的过程:

[test1280@localhost smpinit]$ rz -E
rz waiting to receive.
[test1280@localhost smpinit]$ stat smpinit.C 
  File: “smpinit.C”
  Size: 21144       Blocks: 48         IO Block: 4096   一般文件
Device: fd00h/64768d    Inode: 6006035     Links: 1
Access: (0644/-rw-r--r--)  Uid: (  514/test1280)   Gid: (  514/test1280)
Access: 2017-06-21 13:37:11.000000000 +0800
Modify: 2017-06-21 13:38:04.000000000 +0800
Change: 2017-06-21 13:37:11.000000000 +0800
[test1280@localhost smpinit]$ date
2017年 06月 21日 星期三 13:37:20 CST
[test1280@localhost smpinit]$ make
make[1]: Entering directory `/home/test1280/cmin02sms/src/smpinit'
make[1]: Warning: File `smpinit.C' has modification time 41 s in the future
Compiling smpinit.C... OK
……
--->>>>>>>>> MAKE OK <<<<<<<<<---
make[1]: 警告:检测到时钟错误。您的创建可能是不完整的。
make[1]: Leaving directory `/home/test1280/cmin02sms/src/smpinit'

看到了吧?stat显示文件的modify-time是38分04秒,但是现在时间是37分20秒….

其实这个警告并不会影响什么,该生成可执行文件还是可执行文件(至少我看到的是这样)。

如果不顺眼,可以touch一下嘛:

[test1280@localhost smpinit]$ stat smpinit.C 
  File: “smpinit.C”
  Size: 21144       Blocks: 48         IO Block: 4096   一般文件
Device: fd00h/64768d    Inode: 6006035     Links: 1
Access: (0644/-rw-r--r--)  Uid: (  514/test1280)   Gid: (  514/test1280)
Access: 2017-06-21 13:39:57.000000000 +0800
Modify: 2017-06-21 13:40:45.000000000 +0800
Change: 2017-06-21 13:39:57.000000000 +0800
[test1280@localhost smpinit]$ date
2017年 06月 21日 星期三 13:40:05 CST
[test1280@localhost smpinit]$ touch smpinit.C 
[test1280@localhost smpinit]$ stat smpinit.C 
  File: “smpinit.C”
  Size: 21144       Blocks: 48         IO Block: 4096   一般文件
Device: fd00h/64768d    Inode: 6006035     Links: 1
Access: (0644/-rw-r--r--)  Uid: (  514/test1280)   Gid: (  514/test1280)
Access: 2017-06-21 13:40:10.000000000 +0800
Modify: 2017-06-21 13:40:10.000000000 +0800
Change: 2017-06-21 13:40:10.000000000 +0800
[test1280@localhost smpinit]$ make
make[1]: Entering directory `/home/test1280/cmin02sms/src/smpinit'
Compiling smpinit.C... OK
……
--->>>>>>>>> MAKE OK <<<<<<<<<---
make[1]: Leaving directory `/home/test1280/cmin02sms/src/smpinit'

另:

find ./ -type f |xargs touch
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值