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


当有多个人共用一台机器时,一般是大型服务器,若有其中一个人把时间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。当然记得把自己修改尚未提交的代码备份一下。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值