聊聊cmake和生成器配合使用

2023-12-29 19:22:42


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。

文章来源:https://blog.csdn.net/adminstate/article/details/135292127
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。