cmake入门与提升

文章介绍了CMake作为一种高级编译配置工具,用于解决不同平台Makefile编写复杂性问题。文章还提供了Linux、Mac和Windows的安装步骤,并详细讲解了CMake的基本使用和项目迁移至CMake的方法,如从autotools、qmake和VisualStudio转换。
摘要由CSDN通过智能技术生成

什么是 CMake

官方主页 | 官方文档 | 官方教程

你或许听过好几种 Make 工具,例如 GNU Make ,QT 的 qmake ,微软的 MS nmake,BSD Make(pmake),Makepp,等等。这些 Make 工具遵循着不同的规范和标准,所执行的 Makefile 格式也千差万别。这样就带来了一个严峻的问题:如果软件想跨平台,必须要保证能够在不同平台编译。而如果使用上面的 Make 工具,就得为每一种标准写一次 Makefile ,这将是一件让人抓狂的工作。

CMake 就是针对上面问题所设计的工具:它首先允许开发者编写一种平台无关的 CMakeLists.txt 文件来定制整个编译流程,然后再根据目标用户的平台进一步生成所需的本地化 Makefile 和工程文件,如 Unix 的 Makefile 或 Windows 的 Visual Studio 工程。从而做到“Write once, run everywhere”。显然,CMake 是一个比上述几种 make 更高级的编译配置工具。一些使用 CMake 作为项目架构系统的知名开源项目有 VTKITKKDEOpenCVOSG 等 [1]

前期准备

  1. 一台电脑 + 操作系统(linux[ubuntu | centos], mac), 个人常用的就是这些系统,如果你是windows的话,一些东西是通用的,出现异常情况请自行查找资料

  2. 安装基础环境(vim, gcc, g++, make, cmake等)

    • ubuntu
    # 安装Vim:
    sudo apt update
    sudo apt install vim
    # 安装GCC和g++:
    sudo apt install gcc g++
    # 安装Make工具:
    sudo apt install make
    # 安装cmake工具
    sudo apt install cmake
    
    • centos
    # 安装Vim:
    sudo yum install vim
    # 安装GCC和g++:
    sudo yum install gcc gcc-c++
    # 安装Make工具:
    sudo yum install make
    # 安装cmake工具
    sudo yum install cmake
    
    • mac
    # macOS通常已经预装了Vim,但你也可以通过Homebrew来安装:
    # 安装Homebrew(如果尚未安装):
    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    # 安装Vim:
    brew install vim
    # 安装Xcode Command Line Tools(这会包括GCC、g++和Make工具):
    xcode-select --install
    # 安装cmake工具
    brew install cmake
    

使用说明

  1. 如果你在这方面已经是大佬了,我建议您可以简单看一下,查缺补漏,也可以给出您宝贵的意见
  2. 如果你是一个小白,那么我们就通过下面的练习一起来研究一下cmake吧

迁移到CMake

CMake 可以很轻松地构建出在适合各个平台执行的工程环境。而如果当前的工程环境不是 CMake ,而是基于某个特定的平台,是否可以迁移到 CMake 呢?答案是可能的。下面针对几个常用的平台,列出了它们对应的迁移方案。

autotools

qmake

Visual-Studio

  • vcproj2cmake.rb 可以根据 Visual Studio 的工程文件(后缀名是 .vcproj.vcxproj)生成 CMakeLists.txt 文件。
  • vcproj2cmake.ps1 vcproj2cmake 的 PowerShell 版本。
  • folders4cmake 根据 Visual Studio 项目文件生成相应的 “source_group” 信息,这些信息可以很方便的在 CMake 脚本中使用。支持 Visual Studio 9/10 工程文件。

CMakeLists.txt自动推导

  • gencmake 根据现有文件推导 CMakeLists.txt 文件。
  • CMakeListGenerator 应用一套文件和目录分析创建出完整的 CMakeLists.txt 文件。仅支持 Win32 平台。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值