CMake简易入门

作者: fxm5547 | 来源:发表于2018-02-03 17:17 被阅读459次

首发于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简易入门

    首发于fxm5547的博客 参考 官方手册:https://cmake.org/ CMake 入门实战:http:...

  • [转]CMake 入门实战

    CMake 入门实战 从实例入手,讲解 CMake 的常见用法。 什么是 CMake All problems i...

  • cmake快速入门

    CMake快速入门 推荐:https://www.hahack.com/codes/cmake/ 参考这篇文章 c...

  • CMake 入门 (CMake Tutorial)

    For English version you can check it fromCMake. 查看源码 环境: ...

  • Cmake 入门

    Cmake 入门 前言 CMake是一个比make更高级的编译配置工具,它可以根据不同平台、不同的编译器,生成相应...

  • CMake入门

    文章翻译自:CMake Tutorial 第一步 | 第二步 | 第三步 | 第四步 | 第五步 | 第六步 | ...

  • CMake入门

    CMake是一个跨平台的构建工具,可以用简单的语句来描述所有平台的安装(编译)过程,能够输出各种各样的makefi...

  • Android NDK 开发入门(CMake)

    Android NDK 开发入门(CMake) 本文主要记录以及简单介绍Ndk 的入门,以及google目前推荐的...

  • Numpy简易入门笔记

    来自 AI基础:Numpy简易入门手动运行了一遍实例代码,笔记待查于此处。 Numpy 简易入门 Numpy是 N...

  • CMake 入门2/5:第一个程序 helloworld

    在 CMake 入门1/5:基于阿里云 ECS搭建体验环境,我们搭建了 CMake的运行环境,下面我们以 hell...

网友评论

    本文标题:CMake简易入门

    本文链接:https://www.haomeiwen.com/subject/ynwuzxtx.html