Ubuntu下使用NDK编译时,总是提示make: warning: Clock skew detected. Your build may be incomplete.警告,经过查询是编译文件的修改时间超前了当前编译器读取的系统时间,文件是从Windows系统拷贝过来的,所以,直接在Linux下打开再保存一下就没有提示。不过即使不修改也一般是不影响编译结果的。
警告提示:
make: Warning: File `jni/Android.mk' has modification time 3.2e+04 s in the future
make: warning: Clock skew detected. Your build may be incomplete.
遇到这类问题,尤其是文件是从第三方拷贝过来的,比如修改时间是2050年,那么更新系统时间等措施都没效果的,要避免警告,只能把文件的修改时间修改掉。有两种方法:
一、可编译文件修改方法
对有限数量的文件警告提示(可以从警告信息中看出有哪些文件),如果是文档型可编辑的文件,比如.mk、.doc、.txt、.java、.c等等,只需要打开再保存一次即可。保存时间会自动更新为当前系统时间。
如果数量太多,甚至是包含子目录文件,那么就只能使用下面的方法。
二、使用touch命令
对有限数量的文件警告提示,只需打开重新保存一下即可,修改时间会自动更新,对其它非文本型文件,可以使用touch命令修改时间戳。
touch更改文件的修改时间:
touch -m -d "2014-07-3 08:10:30" myfilename.mk
touche更改文件的修改和访问时间:
touch -d "2014-07-3 08:10:30" myfilename.mk
如果需修改的文件很多,建议使用批处理或第三方工具进行。