ubuntu 源码编译安装cmake2.8.10.2

郑重声明:本文是笔者根据个人理解所写,错误难免,欢迎拍砖!

       可以任意转载、修改,转载时是否标明出处,随君而定!

  

从cmake官网下载最新的cmake版本,笔者下载的是cmake-2.8.10.2.tar.gz,地址http://www.cmake.org/cmake/resources/software.html

1、解压cmake-2.8.10.2.tar.gz

tar -xvf cmake-2.8.10.2.tar.gz

2、在cmake-2.8.10.2同级目录下新建一个编译目录

mkdir cmake-bulid

cd cmake-build

3、编译cmake

.././bootstrap

注意:可能会出现如下错误:

/usr/lib/libstdc++.so.6: version 'GLIBCXX_3.4.15' not found
这个是因为笔者更新ubuntu gcc编译器导致的。

解决方法:

a. 查看libstdc++.so.6支持GLIBC

strings /usr/lib/libstdc++.so.6 | grep GLIBC

output:

GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBC_2.0
GLIBC_2.3
GLIBC_2.1
GLIBC_2.1.3
GLIBC_2.3.2
GLIBC_2.2
GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH

 发现里面没有支持GLIBCXX_3.4.15。在这里,笔者ubuntu中安装的gcc 4.7

ls /usr/local/gcc-4.7.2/

output:

bin  include  lib  libexec  share

将/usr/local/gcc-4.7.2/lib/目录下面的libstdc++.so.6和libstdc++.so.6.0.17拷贝到/usr/lib/目录下面:

sudo cp /usr/local/gcc-4.7.2/lib/libstdc++.so.6 /usr/lib/
sudo cp /usr/local/gcc-4.7.2/lib/libstdc++.so.6.0.17 /usr/lib/
sudo rm -f /usr/lib/libstdc++.so.6.0.13

删除libstdc++.so.6旧的链接,建立新的链接,同时删除libstdc++.so.6.0.13

sudo ln -sf /usr/lib/libstdc++.so.6.0.17 /usr/lib/libstdc++.so.6
sudo rm -f /usr/lib/libstdc++.so.6.0.13

至此搞定,现在我们回到编译cmake中。重复刚才的命令:

.././bootstrap

注意:此时我们仍然在cmake-bulid目录下面。

上面成功以后就执行如下2个命令:

make
sudo make install

查看cmake是否安装成功:

cmake --version

output:

cmake version 2.8.10.2

恭喜你,安装成功了。

 

原文地址:https://www.cnblogs.com/520zijuan/p/2890181.html