linux下如何方便的切换cmake版本

有时候编译不同的软件可能需要不同的cmake版本,由于编译一般都是用脚本编译,并不是直接cmake xxx,所以切换cmake有点不方便。
想要切换cmake版本且切换后版本信息能够传递给任意的脚本中(即环境变量传递到任意脚本中),可以这么做:

  1. 首先下载两个版本的cmake了,放到一个非环境变量目录里,比如我放在了/opt/cmake/xxxx里面;

  2. 然后编写一个脚本文件,比如命名为 cmake_change

    #!/bin/bash
    
    keys="/opt/cmake/cmake-"
    cmake1='/opt/cmake/cmake-3.5.1-Linux-x86_64/bin/' #刚才下载的cmake版本之一
    cmake2='/opt/cmake/cmake-3.22.3-linux-x86_64/bin/' #刚才下载的cmake版本之一
    cmake_version="$1"
    
    OLD_IFS="$IFS" # 保存系统默认的分隔符
    IFS=":" # 将分隔符设置为冒号,为了下面取出环境变量里面每个路径
    path_array=($PATH) # 将环境变量变成数组,以上面设置的冒号分隔符为界限
    IFS="$OLD_IFS" # 恢复默认的系统分隔符
    export PATH="" # 清空当前shell的环境变量
    for p in ${path_array[@]}
    do
        	if [[ $p =~ $keys ]]
        	then
                	continue # 如果旧的环境变量里面还有了某个cmake版本,则直接跳过,先不加入环境变量
        	fi
        	export PATH=${PATH}:${p} # 将之前的环境变量的路径挨个加入现在的环境变量里面
    done
    
    if [[ $cmake1 =~ $cmake_version ]] # 将脚本传入的指定版本的cmake路径加入新的环境变量里面
    then
        	export PATH=${PATH}:${cmake1}
    else
        	export PATH=${PATH}:${cmake2}
    fi
    
    echo "change cmake version to ${cmake_version}"
    

    上面的脚本意思就是将当前shell中原有的cmake环境变量路径去除,然后加入指定的cmake版本的路径到环境变量里面。

  3. 为了能够使新的环境变量生效(对当前shell以及脚本生效),最后一步,在~/.bashrc中加入下述两行:

    alias cmake1='source cmake_change 3.5.1'
    alias cmake2='source cmake_change 3.22.3'
    

    退出后执行:

    . ~/.bashrc
    

现在,想要切换哪个版本的cmake,只需要执行cmake1或者cmake2就能自动切换到那个版本,且cmake版本会自动进入当前shell中执行的脚本环境中。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值