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++】Windows端VS code中运行CMake工程(手把手教学)
【C++】Windows端VS code中运行CMake工程(手把手教学)
|
自然语言处理 安全 C++
【C++ 格式化输出 】C++20 现代C++格式化:拥抱std--format简化你的代码
【C++ 格式化输出 】C++20 现代C++格式化:拥抱std--format简化你的代码
9496 4
|
编解码 Linux 编译器
使用 C++ 方式实现 GBK 到 UTF-8 转码 (win / linux)
使用 C++ 的方式处理在 Windows 平台和 Linux 平台,编码字符集从 GBK 到 UTF-8 转码,C++ 存在多种方式实现
4213 1
|
存储 算法 编译器
【C++ 字符数组的模板特化】面向字符串的C++模板特化:理解与实践
【C++ 字符数组的模板特化】面向字符串的C++模板特化:理解与实践
375 1
|
存储 缓存 测试技术
CMake String函数:如何巧妙地在cmake中操作字符串
CMake String函数:如何巧妙地在cmake中操作字符串
1438 0
|
存储 前端开发 Java
【C++ 多线程 】C++并发编程:精细控制数据打印顺序的策略
【C++ 多线程 】C++并发编程:精细控制数据打印顺序的策略
426 1
|
计算机视觉
AutoCAD *.dxf文件解析,使用dxflib搞定polyline/spline/ellipse等复杂图形(★firecat推荐★)
AutoCAD *.dxf文件解析,使用dxflib搞定polyline/spline/ellipse等复杂图形(★firecat推荐★)
2709 0
AutoCAD *.dxf文件解析,使用dxflib搞定polyline/spline/ellipse等复杂图形(★firecat推荐★)
|
IDE Unix 编译器
Windows下配置CMake(入门级教程,适合新人收藏学习)
Windows下配置CMake(入门级教程,适合新人收藏学习)
6000 1
|
开发工具 git
Vcpkg安装指定版本包或自定义安装包
Vcpkg安装指定版本包或自定义安装包
2505 0
|
Unix
深入理解 CMake 的 `cmake --build` 命令
深入理解 CMake 的 `cmake --build` 命令
2292 1