转自
http://blog.csdn.net/shan165310175/article/details/23165553
对于 gcc 来说也一样
参考
http://blog.chinaunix.net/uid-22145625-id-3864471.html
有时为了测试,将系统时间改到文件创建时间之后,再次编译文件时,由于文件的更改时间在将来,所以每次都重新编译所有文件,解决的方法如下:
更新指定文件夹下文件和所有子文件夹下需要编译的所有文件的时间戳:
#find ./ -type f -exec touch {} \;
该命令意思是将当前文件夹及其所有子文件夹的东西全挖出来,挨个用touch命令搞一下。{}表示将具体的每一个文件名作为参数传给touch。其实就是一个针对所有文件的循环了。 再编译一次,以后就会恢复正常,只改变变化的文件了。
总结:
今天最开始遇到的问题是,同事 的 lua 脚本,怎么修改也没办法加载新的修改,必须 xcode clean /build 才行。原因是同事调整过系统时间,把时间调整到过未来。
lua 脚本是依靠 xcode 的 build phases 里面 的 copy bundle resources ,把 lua 拷贝到 .app 的包里面的。
根据上面的文章,是由于 "代码文件夹本身的修改时间在未来" 的启示,怀疑是 lua 文件夹里面有 修改事件在未来 的 导致的。项目的 lua 的 git 库并不大,尝试删掉 文件夹,重新 clone 下来,这样文件夹 的修改时间没有异常,完美解决问题。
记录在此备忘。