从零开始 CMake 学习笔记 (A)hello-cmake

从零开始 CMake 学习笔记 (A)hello-cmake

最近基于Caffe2 C++项目开发算子时,接触到了C++,查找的资料基本又杂又多,官方文档又缺少自己动手的小实验,因此有必要跟着 github 上的案例学习学习,顺带记录下自己的学习笔记留待后用。

定义
CMake 可以编译源代码、制作程序库、产生适配器(wrapper)、还可以用任意的顺序建构执行档。CMake 支持 in-place 建构(二进档和源代码在同一个目录树中)和 out-of-place 建构(二进档在别的目录里),因此可以很容易从同一个源代码目录树中建构出多个二进档。CMake 也支持静态与动态程式库的建构。
“CMake”这个名字是“cross platform make”的缩写。虽然名字中含有“make”,但是CMake和Unix上常见的“make”系统是分开的,而且更为高阶。

开始前先默念三遍口诀:

  1. Declare a target
  2. Declare target’s traits
  3. It’s all about targets

本系列主要根据GitHub上的 cmake-examples 项目进行翻译总结,同时对于不清晰的概念及函数进行查阅理解记录形成。

1 介绍

本案例展示了一个非常基本的hello world示例,整体的文件结构如下.

1.1 文件树

A hello-cmake$ tree
├── CMakeLists.txt
├── main.cpp

1.2 文件简介

  • CMakeLists.txt - 包含了你希望运行的 CMake 命令;
# 设置CMake运行时的最低版本
# $ cmake --version
cmake_minimum_required(VERSION 3.5)

# 设置工程名
project (hello_cmake)

# 添加可执行文件
add_executable(hello_cmake main.cpp)
  • main.cpp - "Hello World"的cpp文件。
#include <iostream>

int main(int argc, char *argv[])
{
   
   std::cout << "Hello CMake!" << std::endl;
   return 0;
}

2 概念解析

2.1 CMakeList.txt

CMakeLists.txt 时存储所有 CMake 命令的文件。当运行 cmake 命令时,他会查找路径下的 CMakeLists.txt 文件,并按照其中的命令执行。若不存在此文件,那么 cmake 命令将会退出并报错

2.1.1 最小 CMake Version

当使用 CMake 创建项目的时候,可以用下面的命令来指定支持

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值