CMake简易入门

首发于fxm5547的博客

参考

CMake简介

  • Makefile是类unix环境下的类似于批处理的"脚本"文件。其基本语法是: 目标+依赖+命令,只有在目标文件不存在,或目标比依赖的文件更旧,命令才会被执行。
  • make是用来执行Makefile的。
  • Makefile+make可理解为类unix环境下的项目管理工具,但它太基础了,抽象程度不高,而且在windows下不太友好,于是就有了跨平台项目管理工具CMake, CMake是抽象层次更高的项目管理工具,CMake命令执行的CMakeLists.txt文件,生成Makefile。
  • CMake is great. don't waste time on other C++ build tools, seriously.

  • CMake是CLion IDE(JetBrains出品)唯一默认支持的构建工具。

实例

  • 工程结构


    图片
  • 代码文件都在src目录
  • CMakeLists.txt文件是使用CMake需要编写的唯一文件:
cmake_minimum_required(VERSION 2.6)
project(itest)

# C++标准
set(CMAKE_CXX_STANDARD 11)

# 指定参与编译的源文件
add_executable(itest src/main.cpp src/cal/Calculator.cpp src/cal/Calculator.h)

# 指定安装路径,make install 时运用
install (TARGETS itest DESTINATION bin)
install(DIRECTORY src/ DESTINATION include/itest FILES_MATCHING PATTERN "*.h")

# 设置不同build类别时的编译参数
#set(CMAKE_BUILD_TYPE "Debug")
set(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb")
set(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")
  • debug和release是存放编译中间和结果文件夹,cmake.sh是一个执行cmake和make命令的脚本:
#!/bin/bash

# 父级目录
base_dir=$(dirname $(pwd))

# 制定构建类型是debug
cmake $base_dir -DCMAKE_BUILD_TYPE=Debug

# 编译
make
  • 执行chmod a+x cmake.sh && ./cmake.sh,完成整个构建过程,生成itest可执行程序
    图片
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • CMake学习 本篇分享一下有关CMake的一些学习心得以及相关使用。 本文目录如下: [1、CMake介绍] [...
    AlphaGL阅读 12,290评论 11 79
  • 注:首发地址 1. 前言 当在做 Android NDK 开发时,如果不熟悉用 CMake 来构建,读不懂 CMa...
    cfanr阅读 24,556评论 1 53
  • 1.安装 $sudo apt-get install cmake 2.示例:简单的文件目录 sample |—...
    荷包蛋酱阅读 29,709评论 0 15
  • S_s_s_a53f阅读 277评论 0 0
  • 要设计一个XML配置文件,写完XML,突发奇想~想要写下XSD定义文件,找到W3C的一个示例,就开干了,感觉还不错...
    HanlyJiang阅读 3,033评论 0 2