(有关cmake命令必须运行两次问题的解决)cmake错误:从“Clock skew detected”到 “Cannot copy output executable”解决办法

今天刚刚学习cmake的使用,然后就遇见了问题。

运行cmake命令第一次不成功,接着运行第二次就成功生成Makefile文件。

肯定是哪里出现了问题。

先上一张cmake运行时候的报错图:

 

去查看CMakeError.log文件,发现报错:“Clock skew detected”

去百度了一下说是由于文件时间比系统时间晚造成的 用date命令查看,果真系统时间还是上个月(我在挂载目录下建立的文件,windows的系统时间是正确的,所以就导致了这个问题)

于是想办法解决,一些博客提供手动修改系统的办法,但是感觉不够自动化,NTP可以帮我们解决这个问题。

首先没有NTP包的可以下载安装。

安装成功后我们还需要配置一下/etc/ntp.conf。(记得加上sudo,不然没有修改的权限!)

sudo vim /etc/ntp.conf

 

我们使用server命令设定上层NTP服务器

我这里采用阿里云的服务器地址

在最后一行加上:

server ntp1.aliyun.com

如图所示:

 

查看NTP服务是否启动:

ps -aux | grep ntp

如下显示:

 

没有启动,可以重启服务:sudo /etc/init.d/ntp restart

查看系统时间:

 

已经同步网络时间了。

 

这时候再cmake一次,发现问题依然存在,但是CMakeError.log文件里面的错误变成:

Cannot copy output executable
  '/mnt/share/build/CMakeFiles/CMakeTmp/cmTC_dd4b6'
to destination specified by COPY_FILE:
  '/mnt/share/build/CMakeFiles/feature_tests.bin'

??!!

 stackoverflow里面也有人出现同样的问题,链接:https://stackoverflow.com/questions/64438728/detecting-compiler-abi-failed-by-cmake

指出问题的原因:

The CMAKE is not able to access to file system with permission granted. Solution is to edit /etc/fstab accordingly.

CMAKE无法在授予许可的情况下访问文件系统。解决方法是相应地编辑/ etc / fstab。

让我去改/etc/fstab文件,这显然又是一个对于菜鸟来说巨大的工程量。然而授予权限的方式还有一种最常用的办法,就是sudo 命令。

再次使用命令:

sudo cmake ..

一次运行成功 

不容易啊,一个简单的例子终于一次成功了。

今天记录下来,免得大家浪费时间重走我的老路。 

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值