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的主要内容,如果未能解决你的问题,请参考以下文章