当前位置: 代码迷 >> 综合 >> CMake 实战教程1:管理 VS 工程
  详细解决方案

CMake 实战教程1:管理 VS 工程

热度:139   发布时间:2023-10-14 23:15:31.0

文章目录

    • 说明
    • 什么是 CMake
    • CMake 下载与安装
    • CMake 入门
    • 写一个 Demo
    • 将 Demo CMake 成 VS 工程
    • 运行 VS 工程
    • 为什么要这样组织文件
    • Github 官网教程
    • 总结
    • 联系博主

说明


  • 以下内容均是在 Windows 下进行操作
  • 博主用的 VS 版本: 2013
  • 博主用的 Cmake 版本:cmake-3.13.0-rc2-win64-x64
  • 所有资源均已上传至百度云(提取码:utcm):CMake资源合集

什么是 CMake


我们经常见到的 Make 工具有:

  • GNU Make
  • QT 的 qmake
  • 微软的 MS nmake
  • BSD Make(pmake)
  • Makepp
  • 其他

那么这样会造成以下问题:

  • 这些 Make 工具遵循着不同的规范和标准,所执行的 Makefile 格式也千差万别
  • 这样就带来了一个严峻的问题:如果软件想跨平台,必须要保证能够在不同平台编译。而如果使用上面的 Make 工具,就得为每一种标准写一次 Makefile ,这将是一件让人抓狂的工作

CMake 的提出就是为了解决上述问题:

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

CMake 下载与安装


  • 官网:https://cmake.org/download/
  • 安装:就是一个解压过程
  • 安装完后记得在系统环境变量里添加 CMake.exe 的 Path

CMake 入门


作为入门,请读者自行阅读以下内容,然后再看下面的内容:

  1. 中文版教程

链接1:CMake 入门实战(重点推荐)

链接2:在 linux 下使用 CMake 构建应用程序(次要推荐)

链接3:cmake使用教程

  1. 英文版教程

官方教程:CMake Reference Documentation

写一个 Demo


注意:

本 Demo 对应百度云视频中的 Video-Introduction to CMake

如果有英文不好的同学,请用 Youtube 看,可以自动实时翻译

此部分代码已上传至 Github :CMake-Tutorial

  • 目录树(红线代表同一层):

CMake 实战教程1:管理 VS 工程

  • 如果有点不好看,看这个:
--./Demo|---dlls|    |---dll1|    |    |---dll1.h|    |    |---dll1.cpp|    |    |---CMakeLists.txt|    |---CMakeLists.txt|---exes|    |---exe1|    |    |---main.cpp|    |    |---CMakeLists.txt|    |---CMakeLists.txt|---inc|    |---head1.h|---libssrc|    |---lib1|    |    |---lib1.h|    |    |---lib1.cpp|    |    |---CMakeLists.txt|    |---CMakeLists.txt|---CMakeLists.txt
  • 代码书写

此部分代码已上传至 Github ,见上文

  • 代码全家福
inc 文件夹

CMake 实战教程1:管理 VS 工程

dlls 文件夹

CMake 实战教程1:管理 VS 工程

exes 文件夹

CMake 实战教程1:管理 VS 工程

libssrc 文件夹

CMake 实战教程1:管理 VS 工程

顶层 CMakeLists.txt

CMake 实战教程1:管理 VS 工程

将 Demo CMake 成 VS 工程


有以下两种方法:

  1. 直接 CMake
  • 打开 Demo 文件夹,在此目录下打开 cmd,执行 cmake .(如果需要的话执行 make )
  1. 用 CMake GUI
  • 在 Demo 下新建一个 build 文件夹
  • 打开 CMake GUI,按图操作

CMake 实战教程1:管理 VS 工程

CMake 实战教程1:管理 VS 工程

CMake 实战教程1:管理 VS 工程

CMake 实战教程1:管理 VS 工程

运行 VS 工程


  • 双击打开 Demo.sln
  • 生成 - 批生成 - 勾选INSTALL Debug - 生成

CMake 实战教程1:管理 VS 工程

  • 最终在 bin 下生成 exe1.exe 文件,在 cmd 下运行该程序

CMake 实战教程1:管理 VS 工程

CMake 实战教程1:管理 VS 工程

为什么要这样组织文件


目前你只需要知道这样更容易打包发布程序即可

更多请查看我的另外两篇博文:
博客一:VS 下静态库与动态库的生成与使用
博客二:VS 多工程之间管理与调用(超详细)

知乎上的这两篇文章也不错:
VS Code + Cmake + CppUnit 搭建大型C++工程(一)
VS Code + Cmake + CppUnit 搭建大型C++工程(二)

Github 官网教程


Quick setup — if you’ve done this kind of thing before
HTTPS | SSH
Get started by creating a new file or uploading an existing file. We recommend every repository include a README, LICENSE, and .gitignore.…or create a new repository on the command line
echo "# ******" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/Neverland1026/******.git
git push -u origin master…or push an existing repository from the command line
git remote add origin https://github.com/Neverland1026/******.git
git push -u origin master…or import code from another repository
You can initialize this repository with code from a Subversion, Mercurial, or TFS project.

总结


  • 通过 VS 和 CMake 的交叉理解,能够更加全面的、综合的理解一个大型工程的组织方式

联系博主


邮箱:Neverland_LY@163.com

  相关解决方案