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

相关推荐
努力学习的小廉12 分钟前
【智能指针】—— 我与C++的不解之缘(三十三)
开发语言·c++
baobao176764083016 分钟前
C++单例模式
javascript·c++·单例模式
shenxiaolong_code24 分钟前
编译器bug ?
c++·bug·meta programming·compiler bug
dami_king31 分钟前
用C++手搓一个贪吃蛇?
c++·游戏·c
安於宿命2 小时前
【Linux】用C++实现UDP通信:详解socket编程流程
linux·c++·udp
愚润求学3 小时前
【C++】list模拟实现
开发语言·数据结构·c++·list
刚入门的大一新生7 小时前
C++初阶-C++的讲解1
开发语言·c++
ALex_zry10 小时前
C++17模板编程与if constexpr深度解析
开发语言·c++·性能优化
蜕变的土豆10 小时前
Visual Studio未能加载相应的Package包弹窗报错
ide·visual studio
旧时光林11 小时前
P10905 [蓝桥杯 2024 省 C] 回文字符串
c语言·c++·蓝桥杯·模拟·枚举