前几天在带本科生毕设的时候,让他们的电脑是新装的ubuntu mate系统以及新装的ros kinetic版本,在更改了cpp文件后编译的过程中出现了问题:“警告:检测到时钟错误。您的创建可能是不完整的。”之前我自己的电脑上是从来没有出现过这种情况的。于是求助度娘和google,找到以下解决办法:
1.使用touch命令
在编译时会看到和
make: Warning: File `shttpd/include/shttpd.h' has modification time 3e+07 s in the future
类似的警告,直接执行
touch 文件名
来修正文件时间,尝试过后确实有用,但是只适用于报错文件不多的情况下,报错文件一多工作量就太大了;而且有时还会出现找不到这个报错文件的情况。
看到还有一种更新整个项目时间的方法,运行:touch *
但是尝试过后好像并没有作用
2.使用find . -type f -exec touch {} \命令
一开始直接执行这个命令也并没有效果,后来把工作空间中的build、devel中的相关文件删除后重新编译,再运行find . -type f -exec touch {} \
该命令执行持续了几秒钟,然后再编译则没有出现错误。
中间由于是使用catkin_make编译整个工作空间太浪费时间,选择直接使用
catkin_make -DCATKIN_WHITELIST_PACKAGES="save_data"
来单独编译save_data功能包
网友评论