聊聊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。

相关推荐
月夜的风吹雨1 小时前
【封装红黑树】:深度解析map和set的底层实现
c++·set·map·封装
列逍1 小时前
深入理解 C++ 智能指针:原理、使用与避坑指南
开发语言·c++
C语言小火车2 小时前
C/C++ 指针全面解析:从基础到进阶的终极指南
c语言·开发语言·c++·指针
wefg12 小时前
【C++】特殊类设计
开发语言·c++
帅中的小灰灰3 小时前
C++编程原型设计模式
开发语言·c++
凌康ACG3 小时前
Sciter窗口间状态事件交互(四)
c++·sciter
“αβ”4 小时前
MySQL库的操作
linux·服务器·网络·数据库·c++·mysql·oracle
月夜的风吹雨4 小时前
【 C++哈希容器】:unordered_map与unordered_set深度解析
c++·哈希算法·unordered_map·unordered_set
你的冰西瓜5 小时前
C++14 新特性详解:相较于 C++11 的主要改进
开发语言·c++·stl
无限进步_5 小时前
C语言单向链表实现详解:从基础操作到完整测试
c语言·开发语言·数据结构·c++·算法·链表·visual studio