You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何执行source命令修改$PATH后CMake版本发生变化?

问题原因分析

这本质是系统查找可执行程序的优先级逻辑导致的:

  • 当你在终端输入cmake这类命令时,系统会按照$PATH环境变量里的路径顺序,从前往后逐个查找名为cmake的可执行文件,找到第一个匹配的就直接使用。
  • 你没source那个文件时,新版CMake 3.25所在的路径在$PATH里的优先级更高(排在旧版3.12路径的前面),所以系统优先找到3.25版本。
  • 当你source那个包含export PATH={some path}的文件后,这个{some path}里应该存放着旧版CMake 3.12的可执行文件,而且这个路径被设置到了$PATH的更靠前的位置(比如用export PATH={some path}:$PATH的写法,把新路径插在原有PATH最前面)。这就导致系统查找cmake时,先找到了旧版3.12的可执行文件,所以版本显示就变了。

你可以用以下命令验证:

  1. source目标文件后,执行which cmake,会输出当前调用的cmake的绝对路径,确认是不是旧版3.12的安装路径。
  2. 分别在source前后执行echo $PATH,对比两次的输出,就能看到{some path}的位置,以及旧版cmake路径的优先级变化。

内容的提问来源于stack exchange,提问作者Sanjay kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 19:55:18