Linux下时间戳不同步引起的编译错误解决

在Linux下编译源代码时,由于时钟同步问题,出现 warning: Clock skewdetected. Your build may be incomplete.这样的警告。下面是两种解决这个问题的办法。

方法一:修改所有源代码的时间后重新编译

find . -type f | xargs -n 5 touch
make clean
make

方法二:修改编译环境的系统时间后重新编译

root@server vsftpd-2.0.5]# date
Sat May 3 08:04:03 CST 2008
 修改日期和时间:
[root@server vsftpd-2.0.5]# date -s 5/3/2008
Sat May 3 08:04:03 CST 2008
[root@server vsftpd-2.0.5]# date -s 09:01:00
Sat May 3 09:01:00 CST 2008
[root@server vsftpd-2.0.5]# date
Sat May 3 09:01:01CST 2008
 写入到CMOS中保存时间,下次启动后保留设置的时间:
[root@server vsftpd-2.0.5]# clock -w
[root@server vsftpd-2.0.5]# date
Sat May 3 09:01:02ST 2008
然后重新make 并 makeinstall则安装正常。
  注意:这里说的是系统时间,是Linux由操作系统维护的。
  在系统启动时,Linux操作系统将时间从CMOS中读到系统时间变量中,以后修改时间通过修改系统时间实现。为了保持系统时间与CMOS时间的一致性,Linux每隔一段时间会将系统时间写入CMOS。由于该同步是每隔一段时间(大约是11分钟)进行的,在我们执行date -s后,如果马上重起机器,修改时间就有可能没有被写入CMOS,这就是问题的原因。如果要确保修改生效可以执行如下命令。
#clock -w

你可能感兴趣的:(linux)