免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 17397 | 回复: 3
打印 上一主题 下一主题

make: warning: Clock skew detected. Your build may be incomplete. [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-05-28 07:46 |只看该作者 |倒序浏览
我用makefile编译我的一个程序:

make  -f  makefile_my_program

编译过程是成功的,而且生成的可执行文件运行正确。
但是编译时总是在最后一行显示这个信息:
make: warning:  Clock skew detected.  Your build may be incomplete.

我的makefile的最后一段是去删除中间过程的.o目标文件。这个删除没有被执行。
clean:
        rm  main_prog.o  my_lib.o
于是,我怀疑是因为我的程序很小,编译很快,两个.o文件的系统时间还没变成时分秒,所以暂时无法被make删除。

然后,我把makefile中清除过程文件的部分注释掉,但是结果还是这样。

请问,这是出了什么问题?还有,这对编译结果的正确性有没有影响?

另外,请问,Linux系统的文件根据什么,在什么时候,系统时间由只有日期变成时分秒?

谢谢。

论坛徽章:
0
2 [报告]
发表于 2012-05-28 09:51 |只看该作者
源码创建时间问题吧    有人写了脚本可以批量重设时间

论坛徽章:
0
3 [报告]
发表于 2012-06-06 00:17 |只看该作者
make的时候会根据你的目的去检查哪些文件需要重新编译,
比如test.o:test.c表示test.o依赖test.c
make的时候会比较 test.o和test.c的最后修改时间:
如果test.c比test.o新则重新编译test.c,反之不编译test.c.

具体于这个问题,可能是你当前机器时间是 今天下午两点,但是你的test.c或者test.o是下午时间两点以后,机器就会认为这个文件修改时间在未来,就会认为有错误,
产生问题的原因多半是因为你在两台机器上面拷贝的文件而两台机器的时间不一样造成的,

处理办法:
1.吧编译的机器时间调整晚一些,晚到需要的所有文件的最后更新时间都在当前系统时间之前
或者:
2.吧所有输出问价(这里是test.o删除) 具体操作是先make clean 再make,这个会提示警告但是应该不会出错。

论坛徽章:
0
4 [报告]
发表于 2012-06-13 14:29 |只看该作者
重新设置时间就OK了啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP