Cmake生成指定vs版本的工程文件

简介: 本文简单总结了使用 cmake 生成 visual studio 工程文件的过程

前言

很多开源库都是使用makefile的形式组织的,如果我们不习惯使用命令行进行编译,我们可以使用cmake或者cmake-gui来生成工程文件,进而可以通过GUI的形式进行编译。本文主要总结了如何通过指定[generator]来生成想要的特定版本的工程文件。

查看帮助

我们可以使用cmake --help来查看帮助,如下图
cmake help

指定sourcebuild路径

命令行形式

我们下载makefile到本地后,可以cd到下载目录下包含CMakeLists.txt的子目录下,从而可以使用cmake .来生成工程文件。

根据帮助文档,我们也可以使用-S path-to-source来指定原文件路径,使用-B path-to-build来指定build路径。

注意:path-to-source指的是CMakeLists.txt所在的目录,如果对应的目录下没有该文件,会报如下错误
CMake Error: The source directory "D:/working/mergepdf" does not appear to contain CMakeLists.txt. Specify --help for usage, or press the help button on the CMake GUI.

界面形式

cmake-gui对应的选项如下图所示
cmake-gui source&build setting

选择generator

generator作用

cmake会根据默认的[generator]生成工程文件。e.g. 如果我们先装了vs2013,又装了vs2019,那么cmake很可能会使用vs2019相关的文件来生成工程文件。有时候这不是我们想要的,我们能不能让cmake生成vs2013的工程文件呢?答案是肯定的。在指定[generator]之前,我们需要知道有哪些[generator]。

查看generator

我们可以通过cmake --help或者cmake -h来查看[generator],如下图所示
list generator

我们还可以通过cmake -G来查看所有的[generator],如下图所示
list generator

说明:带\的是默认的generator*

指定generator

我们可以使用以下方式来显示指定:

命令行形式

  • 命令行形式
    cmake -G "Visual Studio 12 2013 Win64" -S . -B ./build

  • 环境变量的形式
    set CMAKE_GENERATOR=Visual Studio 12 2013 Win64
    cmake -S . -B ./build

界面形式

cmake-gui对应的选项如下图所示
cmake-gui generator

cmake-gui演示

cmake-gui

参考资料

  • camke帮助命令行
相关文章
|
自然语言处理 安全 C++
【C++ 格式化输出 】C++20 现代C++格式化:拥抱std--format简化你的代码
【C++ 格式化输出 】C++20 现代C++格式化:拥抱std--format简化你的代码
10700 4
|
人工智能 机器人 编译器
【C++】Windows端VS code中运行CMake工程(手把手教学)
【C++】Windows端VS code中运行CMake工程(手把手教学)
|
IDE Unix 编译器
Windows下配置CMake(入门级教程,适合新人收藏学习)
Windows下配置CMake(入门级教程,适合新人收藏学习)
6511 1
|
编译器 C++
使用Visual Studio 2022 创建lib和dll并使用
本文介绍了如何在Visual Studio 2022中创建静态库(lib)和动态库(dll),并展示了如何使用这些库。文章详细说明了创建新项目、编写代码、生成库文件、配置项目属性以及编写测试代码的步骤,并提供了相应的截图和代码示例。作者还分享了在创建和使用库的过程中遇到的一些问题及其解决方案。
5123 0
使用Visual Studio 2022 创建lib和dll并使用
|
Unix 网络虚拟化 C++
VS2022+Qt5.14.2成功编译MITK2022.10
使用VS2022和Qt5.14.2成功编译MITK2022.10的过程,包括编译结果的截图、遇到的编译问题的解决方法、两个重要的注意事项(patch文件格式的修改和ITK-gitclone-lastrun文件的存在),以及参考链接。文中详细描述了如何解决编译过程中遇到的错误C2220和警告C4819,以及如何修改文件编码和尾行格式。
1142 1
VS2022+Qt5.14.2成功编译MITK2022.10
|
算法 关系型数据库 测试技术
WHQL微软驱动签名方案,让驱动程序在Windows系统流畅运行
WHQL认证(Windows徽标认证)是微软设立的严格测试标准,旨在确保驱动程序的兼容性、稳定性和互通性。本文介绍了三种WHQL微软驱动签名方案:单系统签名、多系统签名和硬件兼容性测试方案,分别满足不同开发商的需求。通过WHQL认证,不仅能消除Windows安装警告,提升用户体验,还能获得“Designed for Windows”徽标授权,入列全球Windows Catalog及HCL产品表,提升品牌权威性和采购优先权。此外,访问微软OCA可获取错误反馈,助力产品质量改进。选择合适的签名方案,让驱动在Windows系统中流畅运行!
|
开发工具 git
Vcpkg安装指定版本包或自定义安装包
Vcpkg安装指定版本包或自定义安装包
3390 0
|
Unix
深入理解 CMake 的 `cmake --build` 命令
深入理解 CMake 的 `cmake --build` 命令
3245 1
|
容器
【Qt 学习笔记】Qt常用控件 | 容器类控件 | Tab Widget的使用及说明
【Qt 学习笔记】Qt常用控件 | 容器类控件 | Tab Widget的使用及说明
2742 2
|
Web App开发 前端开发 JavaScript
Web前端项目的跨平台桌面客户端打包方案之——CEF框架
Chromium Embedded Framework (CEF) 是一个基于 Google Chromium 项目的开源 Web 浏览器控件,旨在为第三方应用提供嵌入式浏览器支持。CEF 隔离了底层 Chromium 和 Blink 的复杂性,提供了稳定的产品级 API。它支持 Windows、Linux 和 Mac 平台,不仅限于 C/C++ 接口,还支持多种语言。CEF 功能强大,性能优异,广泛应用于桌面端开发,如 QQ、微信、网易云音乐等。CEF 开源且采用 BSD 授权,商业友好,装机量已超 1 亿。此外,GitHub 项目 CefDetector 可帮助检测电脑中使用 CEF
4069 3

热门文章

最新文章