2023年12月2日发(作者:)

Linux下时间戳不同步引起的编译错误解决在Linux下编译源代码时,由于时钟同步问题,出现 warning: Clock skewdetected. Your build may be incomplete.这样的警告。下面是两种解决这个问题的办法。方法一:修改所有源代码的时间后重新编译find . -type f | xargs -n 5 touchmake cleanmake方法二:修改编译环境的系统时间后重新编译root@server vsftpd-2.0.5]# dateSat May 3 08:04:03 CST 2008 修改日期和时间:[root@server vsftpd-2.0.5]# date -s 5/3/2008Sat May 3 08:04:03 CST 2008[root@server vsftpd-2.0.5]# date -s 09:01:00Sat May 3 09:01:00 CST 2008[root@server vsftpd-2.0.5]# dateSat May 3 09:01:01CST 2008 写入到CMOS中保存时间,下次启动后保留设置的时间:[root@server vsftpd-2.0.5]# clock -w[root@server vsftpd-2.0.5]# dateSat May 3 09:01:02ST 2008然后重新make 并 makeinstall则安装正常。  注意:这里说的是系统时间,是Linux由操作系统维护的。  在系统启动时,Linux操作系统将时间从CMOS中读到系统时间变量中,以后修改时间通过修改系统时间实现。为了保持系统时间与CMOS时间的一致性,Linux每隔一段时间会将系统时间写入CMOS。由于该同步是每隔一段时间(大约是11分钟)进行的,在我们执行date -s后,如果马上重起机器,修改时间就有可能没有被写入CMOS,这就是问题的原因。如果要确保修改生效可以执行如下命令。#clock -w