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

Centos7下使用CMake_第1张图片

 

 

解压CMake:

tar -zxvf cmake-2.8.10.2.tar.gz

 

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

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

cd cmake-2.8.10.2

./bootstrap

gmake

gmake install

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

具体项目构建实例:

项目中的目录结构如下:

Centos7下使用CMake_第2张图片

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

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

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

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

void talk(){
        cout << "This is talk function!" << endl;
}
//main.cpp
#include 
#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 ../

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

Centos7下使用CMake_第3张图片

执行完cmake后的文件情况:

执行make命令:

Centos7下使用CMake_第4张图片

此时的文件情况:

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

 

你可能感兴趣的:(C++,Linux)