前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【CMake教程】(一)CMake安装、环境搭建以及第一个项目

【CMake教程】(一)CMake安装、环境搭建以及第一个项目

作者头像
CNNer
发布2020-07-09 12:04:48
4K0
发布2020-07-09 12:04:48
举报
文章被收录于专栏:CNNerCNNer

(1)本教程介绍

  本教程主要是通过多个例子讲述CMake在构建系统工程过程中遇到的问题,以及使用方法。每一个例子都会提供一套完整的使用demo。

(2)CMake 的介绍

  CMake是Cross Platform Make的缩写,CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他并不能直接生成最终的应用程序,而是产生标准的建构档(如 Unix 的 Makefile 或 Windows Visual C++ 的 projects/workspaces)。CMake使用更高级的工程组织工具,可以避免直接编写底层的makefile文件,使得工程构建和编译变得更加方便快捷。

  CMake是通过CMakeLists.txt文件进行工程构建的,你的只需要编写CMakeLists.txt文件,对编译构成进行配置。同时一个路径下只能有一个CMakeLists.txt文件,因为CMake工具在进行工程构建的过程中,会自动在执行路径中进行CMakeLists.txt文件的查找。

(3)CMake 的使用环境和安装

CMake使用

本教程的使用环境为:

代码语言:javascript
复制

ubutu18.04 lts

gcc version 7.5.0  

g++ version 7.5.0  

cmake version 3.10.2

安装cmake:

代码语言:javascript
复制

sudo apt install cmake

(4)第一个CMake 工程

首先,看一下整体的目录结构:

代码语言:javascript
复制
|-- tutorial_first/

  |-- src/

  |-- CMakeLists.txt

构建一个最简单的CMake工程只需要3步就可以完成,如下面的命令:

代码语言:javascript
复制

#设置cmake的最低版本
cmake_minimum_required(VERSION 3.10)

#设置工程名称 和版本
project(tutorial_first VERSION 1.0)

#增加生成可执行文件,生成的程序名称为:tutorial_first
add_executable(tutorial_first src/tutorial_first.cpp)

命令使用: cmake_minimum_required :

代码语言:javascript
复制

      cmake_minimum_required(VERSION <min>[...<max>] [FATAL_ERROR])

project:

代码语言:javascript
复制

      project(<PROJECT-NAME>
              [VERSION <major>[.<minor>[.<patch>[.<tweak>]]]]
              [DESCRIPTION <project-description-string>]
              [HOMEPAGE_URL <url-string>]
              [LANGUAGES <language-name>...])

add_executable:

代码语言:javascript
复制

      add_executable(<name> [WIN32] [MACOSX_BUNDLE]
                  [EXCLUDE_FROM_ALL]
                  [source1] [source2 ...])

(5)使用CMake进行编译

  CMake在生成文件的过程中会生成很多中间缓存文件,为了是项目更简洁,文件路径更清楚,一般会在项目的root目录下建立一个文件夹,用于存储CMake生成的中间文件。而一般使用的文件家名称为build或者release。下面是使用命令:

代码语言:javascript
复制

# 进入项目的root目录,本文为:tutorial_first
cd tutorial_first

# 创建存储缓存文件的文件夹,build
mkdir build

# 使用CMake命令生成makefile文件
cmake ..

# 使用make命令进行编译
cmake --build .

(6)cpp 代码

  tutorial_first.cpp 程序代码:

代码语言:javascript
复制

#include <iostream>

int main(int argc, char const *argv[])
{
  std::cout << "cmake_demo_1教程" << std::endl;

  return 0;
}

获取完整工程代码,公众号回复:CMakeDemo1

声明:文章来自于网络,仅用于学习分享,版权归原作者所有,侵权请联系删除。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-07-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CNNer 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • (1)本教程介绍
  • (2)CMake 的介绍
  • (3)CMake 的使用环境和安装
  • (4)第一个CMake 工程
  • (5)使用CMake进行编译
  • (6)cpp 代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档