您的位置:首页 > 编程语言

修改日期导致代码每次都重新编译的问题

2012-08-16 16:58 351 查看
当有多个人共用一台机器时,一般是大型服务器,若有其中一个人把时间date往后改了,比如今天是20号,他把时间改到22号了,那么你再编译文件main.cpp时,生成的main.o文件就是22号的。

(问题1):当他再把时间改回到20号的时候,你又修改了main.cpp文件想重新编译,可是文件修改时间是20号,而.o文件是22号,编译器就忽略该修改,不编译修改的文件。

(问题2):当你从svn更新代码时,更新过的代码文件修改日期为22号的,当把时间改回20号后,这些更新过的文件每次都参与编译,编译器认为这些文件是最新的。

因此修改日期是个很恶心的事,可能导致修改的代码不编译或者每次都编译。解决方法是在svn更新代码前将时间改回来,或者重新编译修改文件前将时间改回来(或者将对应的.o文件删掉)。

使用g++编译文件时,对于比当前机器时间还靠前的文件会给出一条提示“main.cpp has modification time 92166 s in the future”,即这个文件在将来某个时间修改了,因此需要把这个文件的修改时间改回来。

若是用svn管理的代码,碰上这种情况,最简单的方法就是全部删除,重新checkout。当然记得把自己修改尚未提交的代码备份一下。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐