更新Cmake后出现CMake Error Could not find CMAKE_ROOT错误

截止到2020/8/14,在ubuntu-16.04中使用sudo apt install cmake安装的还是3.5.1版本的cmake,在ubuntu-20.04中则是3.16.3版本,而cmake官网上早已经更新到了3.18.1版本。

很多时候,一些开源项目需要高版本的cmake才能编译,所以我们需要从源码编译安装cmake,这一步网上有非常多的教程。

当我们跟着教程执行完sudo make install以后,使用cmake --version查看版本时,却会收到这样的报错:

CMake Error: Could not find CMAKE_ROOT !!!
CMake has most likely not been installed correctly.
Modules directory not found in
/usr/local/share/cmake-3.16
cmake version 3.16.3

关于这个问题,先说解决方式,其实只需要重新开一个终端,然后再使用cmake --version命令,我们就可以正确看到我们刚刚安装的cmake的版本提示了,也就是说,其实根本不存在什么问题,只要关闭原来开启的终端就可以了。

那么为什么会出现这样的问题呢?其实要从哈希表说起,当我们刚刚打开一个终端时,此时哈希表只有一条记录。每当我们再执行命令时,哈希表会记录下这条命令的路径,就相当于缓存一样。

第一次执行命令shell解释器默认的会从PATH路径下寻找该命令的路径,当我们第二次使用该命令时,shell解释器首先会查看哈希表,没有该命令才会去PATH路径下寻找。

所以哈希表可以大大提高命令的调用速率,但是CMake Error: Could not find CMAKE_ROOT错误的原因也出在这里,如果我们之前在这个终端执行过cmake命令,那么哈希表就会自动记录下之前版本cmake的路径,我们可以通过输入hash -l查看,如下图所示:
在这里插入图片描述

所以当我们更新了cmake以后,当我们输入cmake相关命令时,shell解释器便会去哈希表里面查找之前版本cmake的路径,然后便产生了错误。

所以其实也可以在该终端执行hash -r命令来清除哈希表的内容,然后再执行cmake --version命令,也可以消除报错,如下图所示:
在这里插入图片描述

参考资料

hash命令:显示、添加或清除哈希表

Cmake出现CMake Error: Could not find CMAKE_ROOT !!!

  • 22
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
CMake Error: Could not find CMAKE_ROOT !!! CMake has most likely not been installed correctly. 这个错误通常表示CMake没有正确安装。有几个可能的原因导致这个错误出现。 首先,可能是CMake没有正确地安装在系统中。你可以尝试重新安装CMake,并确保按照官方文档提供的指导正确地进行安装。 另外一个可能的原因是CMake的安装目录没有正确地配置。你可以检查CMake的安装目录是否正确设置在系统的环境变量中。这样,当你运行CMake命令时,系统就能够正确地找到它。 此外,这个错误也可能是由于之前在终端中执行了CMake命令,导致了哈希表记录了之前版本CMake的路径。你可以通过输入"hash -l"命令来查看哈希表中是否记录了之前版本CMake的路径。如果有记录,你可以尝试清除哈希表并重新运行CMake命令。 总之,要解决这个错误,你可以尝试重新安装CMake,检查安装目录的配置,清除哈希表记录,并确保按照正确的步骤和指导来安装和使用CMake。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [解决Cmake报错:Could not find CMAKE_ROOT !...CMake has most likely not been installed correctly.](https://blog.csdn.net/weixin_53665577/article/details/130020382)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [更新Cmake出现CMake Error Could not find CMAKE_ROOT错误](https://blog.csdn.net/weixin_45467056/article/details/107995400)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值