修改日期导致代码每次都重新编译的问题
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。当然记得把自己修改尚未提交的代码备份一下。
(问题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。当然记得把自己修改尚未提交的代码备份一下。
相关文章推荐
- VS2008修改部分代码总重新编译整个工程或解决方案的问题解决
- maven自动编译,解决你每次代码修改需要重新编译的繁琐
- c# 中对于每次修改的程序 都必须重新手动生成 才能编译的问题
- 关于修改web app项目java代码后Eclipse没有重新编译的问题
- VS2010编译QT代码,每次Debug都重新编译问题。
- 关于 xcode5 每次修改代码,都要先clean,重新编译才有效的解决方法汇总
- vs2005 的代码和 dll 版本问题导致不能编译或调试[其他版本可能也有这个问题]
- apk安装包反编译+修改代码+替换资源+重新打包+签名全流程记录
- 解决Eclipse每次修改完代码后需要先Clean,不然部署不上文件的问题
- 用了.net2.0,再用1.1的问题。1.1里修改.cs文件不重新编译,.dll不重新生成。
- Delphi/C++Builder在没有做任何代码修改,重新编译后CRC不一致的解决方案。
- IntelliJ IDEA 在使用manven后的纠结(每次修改代码都要重启tomcat才能看效果吗?),请各位大侠来看看问题
- jre build path 中的限制问题导致一些代码无法编译..如果设置
- 关于调试----在单步执行某个程序的中间修改源代码,当修改代码之后移动到下一步时,调试器自动在执行下一语句之前重新编译
- Qt每次运行都是重新编译问题
- 改了系统时间,xcode每次都要重新编译问题
- Eclipse解决每次修改java代码或jsp代码服务器重启问题的解决办法
- maven项目中采用jetty插件启动每次修改代码都会自动重启的问题解决
- VS2008每次build都重新编译问题
- 使用make编译android项目时,修改了文件xml文件名称,导致编译出错的问题原因