聊聊cmake和生成器配合使用

文章目录

cmake 是非常流行的作为C/C++项目管理工具,它不依赖与任何平台。现在基本上开源的项目 比如 openSSL、openGL 、openCV。
都是使用cmake来管理其源码的。
把开源项目的源码从github或其他代码托管平台上下载来,通过后续的配置及生成操作后 可以在Windows、MacOS、Linux上使用。
cmake管理的项目中,其中会有一个至多个CMakeLists.txt文件。项目的根目录中有一个CMakeLists.txt文件。其他的模块里又有自己独有的CMakeLists.txt文件。整个项目的组织关系都在这些CMakeLists.txt文件里。
想要使用源码进行编译和安装需要 根据 特定特定生成器先生成 指定平台上的 项目文件/工程文件(windows) 和 makefile文件(Linux或MacOS)

在Windows下

在Windows上最常用的IDE就是visual studio。我这里使用的是visual studio 2019

cmake 配合 visual studio 16 2019 生成器 生成 visual studio 支持的 解决方案项目,即生成 含.sln的项目文件。

这是可以把生成后的项目文件导入visual studio 2019中,进行 编译 和安装操作。

cmake 配合 ninja生成器 生成 visual studio 支持的 .ninja项目,即生成 含.ninja的项目文件(默认情况下在visual studio上.ninja的项目文件也是最终调用MSVC的cl.exe进行编译)。

这是可以把生成后的项目文件导入visual studio 2019中,进行 编译 和安装操作。

D:\software\visual_studio_2019\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe

D:\software\visual_studio_2019\IDE\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja\ninja.exe

D:\software\visual_studio_2019\IDE\MSBuild\Current\Bin\amd64\MSBuild.exe

D:\software\visual_studio_2019\IDE\MSBuild\Current\Bin\MSBuild.exe

D:\software\visual_studio_2019\IDE\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64\cl.exe

visual studio 2019 上 目前已经集成了cmake,ninja 等可执行文件。

MSBuild的功能类似make 是对 .sln的项目工程进行编译时调用的命令。

visual studio 默认都是使用的microsoftware 的MSVC编译套件。具体使用到的是cl.exe。

mingw 是为在Windows上使用gnu套件的专门定制的。其具体使用到的是gcc.exe 和 g++.exe

在Linux下

cmake 配合 make生成器 生成makefile文件,后续通过make工具 进行 编译(make)和安装(make install)。

Linux下使用gnu套件。其具体使用到的是gcc.exe 和 g++.exe。

相关推荐
小灰灰爱代码23 分钟前
C++——求3个数中最大的数(分别考虑整数、双精度数、长整数的情况),用函数模板来实现。
开发语言·c++·算法
BeyondESH2 小时前
Linux线程同步—竞态条件和互斥锁(C语言)
linux·服务器·c++
豆浩宇2 小时前
Halcon OCR检测 免训练版
c++·人工智能·opencv·算法·计算机视觉·ocr
WG_172 小时前
C++多态
开发语言·c++·面试
Charles Ray4 小时前
C++学习笔记 —— 内存分配 new
c++·笔记·学习
重生之我在20年代敲代码4 小时前
strncpy函数的使用和模拟实现
c语言·开发语言·c++·经验分享·笔记
迷迭所归处9 小时前
C++ —— 关于vector
开发语言·c++·算法
CV工程师小林10 小时前
【算法】BFS 系列之边权为 1 的最短路问题
数据结构·c++·算法·leetcode·宽度优先
white__ice11 小时前
2024.9.19
c++
天玑y11 小时前
算法设计与分析(背包问题
c++·经验分享·笔记·学习·算法·leetcode·蓝桥杯