前言
CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的 makefile 或者 project 文件,能测试编译器所支持的C++特性,类似UNIX下的automake。只是 CMake 的组态档取名为 CMakeLists.txt。Cmake 并不直接建构出最终的软件,而是产生标准的建构档(如 Unix 的 Makefile 或 Windows Visual C++ 的 projects/workspaces),然后再依一般的建构方式使用。
我在centos中安装cmake是为了能够编译 LevelDB,LevelDB 的CMakeLists.txt 要求3.9以上版本的cmake来编译。
编译安装cmake
1.下载cmake的源代码并解压
使用wget命令下载,下载地址。这里我下载的是 Linux_x86的 cmake-3.9.6版本
wget https://cmake.org/files/v3.9/cmake-3.9.6-Linux-x86_64.tar.gz
解压
tar -zxvf cmake-3.9.6-Linux-x86_64.tar.gz
当前目录下出现 cmake-3.9.6-Linux-x86_64目录。使用tar命令时可以用-C指定解压到的路径,因为后面会配置cmake的安装目录,所以此处可以不指定路径。解压后的文件相当于是我们的安装包,cmake安装成功后可以将该文件夹删掉。
2.配置并编译安装cmake
cmake在配置时有两种方式,一个是经常的使用./configure,另一个就是./bootstrap。我查看了configure文件内容,发现使用./configure最后也是去调用bootstrap,所以我就直接使用bootstrap
cd cmake-3.9.6-Linux-x86_64
./bootstrap --prefix=/usr/local/cmake
稍微解释上面这句命令,这句话的大致目的就是把cmake的安装目录指定一下,这样的话,里面的一些bin目录、lib目录就都会存放在这个目录下面。如果不指定这个安装目录的话,最后cmake的安装文件将分散到linux的默认目录,不在一块。我们指定安装目录,以后卸载的话直接删除目录就可以干净卸载了。自己安装的软件一般是安装在/usr/local目录下的,所以我将cmake安装在/usr/local目录下,cmake文件夹可以没有,在安装的时候回自行创建。
现在我们当前目录还是在~/cmake-3.15.0-Linux-x86_64,执行如下命令:
make
然后出来一大堆代码,等它执行完毕。接着输入以下命令:
sudo make install
又是一大堆代码,执行完毕之后,我们就可以切换到/usr/local/cmake目录下去查看了。
cd /usr/local/cmake
ls -l
ls命令结果为
后续工作
为了能在shell中直接输入cmake使用其功能,可以为cmake创建软链接或者将cmake加入到系统环境变量中。以下方法二选一
- 为cmake创建软链接
cd /usr/bin
sudo ln -s /usr/local/cmake/bin/cmake cmake
- 添加系统环境变量
sudo vi /etc/profile
然后在profile文件的最后添加一行
export PATH=$PATH:/usr/local/cmake/bin
即可。
测试使用
在终端输入
source /etc/profile
cmake --version
显示下面的结果,则为安装成功。