Centos7下使用CMake

Posted 尚书左仆射

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Centos7下使用CMake相关的知识,希望对你有一定的参考价值。

在进行需要提供跨平台服务的项目时,最好有相应的跨平台项目构建工具。本文所述的CMake即其中比较好用的跨平台构建工具之一。下文主要以C++语言为例进行使用演示。

安装C++所需的环境:

yum install -y gcc gcc-c++ make automake

安装wget工具:

yum install -y wget

下载CMake工具:

wget http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz

 

 

解压CMake:

tar -zxvf cmake-2.8.10.2.tar.gz

 

进入对应的目录,查看目录结构:

进入目录后,进行安装操作,步骤如下:

cd cmake-2.8.10.2

./bootstrap

gmake

gmake install

安装完成,可阅读install_manifest.txt查看具体都安装了什么。

具体项目构建实例:

项目中的目录结构如下:

其中,CMakeLists.txt用于描述项目构建规则,include目录中是本例的头文件放置目录;src是本例的C++定义文件目录。

各文件中的具体情况如下:

//hello.h
void hello();
//hello.cpp
#include <iostream>
using namespace std;

void hello()
        cout << "hello word!" << endl;
//talk.h
void talk();
//talk.cpp
#include <iostream>
using namespace std;

void talk()
        cout << "This is talk function!" << endl;
//main.cpp
#include <iostream>
#include "hello.h"
#include "talk.h"
using namespace std;

int main()
        hello();
        talk();

        return 0;

项目构建规则的描述如下:

#CMakeLists.txt
# 设置cmake最低版本
cmake_minimum_required(VERSION 2.8.0)

# 设置C++标准
set(CMAKE_CXX_STANDARD 11)

# 项目名称
project(cmake_test)

# 包含的头文件目录
include_directories(./include)

set(SRC_DIR ./src)

# 指定生成链接库
add_library(hello $SRC_DIR/hello.cpp)
add_library(talk $SRC_DIR/talk.cpp)

# 设置变量
set(LIBRARIES hello talk)
set(OBJECT hello_test)

# 生成可执行文件
add_executable($OBJECT $SRC_DIR/main.cpp)

# 为可执行文件链接目标库
target_link_libraries($OBJECT $LIBRARIES)

 

新建并进入build目录,执行cmake操作:

mkdir build

cd build

cmake ../

默认情况下,生成的文件将输出到当前目录。

执行完cmake后的文件情况:

执行make命令:

此时的文件情况:

至此,项目就编译、链接完成,可以直接执行hello_test查看执行情况:

 

以上是关于Centos7下使用CMake的主要内容,如果未能解决你的问题,请参考以下文章

centos7源码安装mysql时cmake报错

如何在centos7中安装cmake

Windows下使用CMake进阶

CentOS7 升级 cmake

centos7 安装高版本cmake 3.2 避 cmake: command not found 坑

centos7安装or升级CMake3.6