当使用CMake来配置和构建一个Visual Studio 项目时,以下命令是关键的。
第一行是用于配置项目,而第二行用于构建项目。
Visual Studio 15 2017
Visual Studio 16 2019
Visual Studio 17 2022
在CMake中,DCMAKE_BUILD_TYPE是用于指定项目的构建类型的选项。通常,它有以下常见的几种类型:
Debug:
Debug类型的构建用于开发和调试目的。它包含了调试符号,关闭了大多数优化,并启用了额外的调试信息。这使得在调试器中跟踪代码更容易。
Release:
Release类型的构建用于生产环境。它启用了更多的编译器优化,以提高代码执行速度。这种构建通常不包含调试信息,因此通常不适合调试。
RelWithDebInfo:
这个构建类型是一种混合类型,它包含了一些优化,但仍然包含调试信息。这在需要性能优化但仍然需要一些调试信息的情况下很有用。
MinSizeRel:
MinSizeRel是一种极小的构建,旨在最小化可执行文件的大小。它会应用更多的优化以减小可执行文件的体积,但可能会损失一些性能。
这些构建类型的可用性可能因操作系统、编译器和项目的设置而异。你可以根据项目的需求选择适当的构建类型。通常,在开发和调试阶段,使用Debug构建,而在部署到生产环境之前,使用Release或其他相关类型进行最终构建。
-
配置项目:
cmake .. -G "Visual Studio 16 2019" -DCMAKE_BUILD_TYPE=Debug
这个命令告诉CMake去配置项目,使用Visual Studio 2019生成器。其中的参数解释如下:
..
: 这表示在上一级目录中查找CMakeLists.txt文件。你应该在项目目录的build
子目录中运行这个命令,以避免混淆源代码和生成的文件。-G "Visual Studio 16 2019"
: 指定了使用Visual Studio 2019作为构建工具。-DCMAKE_BUILD_TYPE=Debug
: 这设置了构建类型为Debug,这将包括调试信息和关闭优化以便于调试。
-
构建项目:
cmake --build . --config Debug -- /m:%NUMBER_OF_PROCESSORS%
这个命令是用于实际构建项目,参数的含义如下:
--build .
: 这告诉CMake在当前目录中构建项目。--config Debug
: 指定构建的配置为Debug,以确保使用了Debug构建类型。-- /m:%NUMBER_OF_PROCESSORS%
: 这部分会传递给底层构建系统(在Visual Studio中是MSBuild),它使用多线程构建来加快构建过程。%NUMBER_OF_PROCESSORS%
是一个环境变量,它会自动使用你计算机的处理器核心数来并行构建。
这两个命令的组合使你能够配置和构建Visual Studio 2019项目,确保使用Debug配置和多线程构建,以便于开发和调试。这是一个基本的CMake和Visual Studio 2019集成教程,你可以根据需要进一步扩展和优化项目配置。
-
本地项目配置和构建:
-
cmake .. -G "Visual Studio 16 2019" -DCMAKE_BUILD_TYPE=Debug
:cmake ..
: 这个命令告诉CMake在当前目录的上一级目录中查找CMakeLists.txt文件,这是CMake项目的配置文件。-G "Visual Studio 16 2019"
: 这个部分指定了使用的生成器,即Visual Studio 2019。这将生成适用于Visual Studio 2019的项目文件。-DCMAKE_BUILD_TYPE=Debug
: 这一部分设置了构建类型为Debug,这意味着生成的项目将包含调试信息,并关闭优化,以便进行调试。
-
cmake --build . --config Debug -- /m:$env:NUMBER_OF_PROCESSORS
:cmake --build .
: 这个命令实际上执行了项目的构建。--build
参数告诉CMake构建项目,.
表示当前目录。--config Debug
: 这部分指定了构建的配置为Debug,以确保使用了Debug构建类型。/m:$env:NUMBER_OF_PROCESSORS
: 这部分传递给底层构建系统,以指示使用多线程构建。$env:NUMBER_OF_PROCESSORS
使用了环境变量NUMBER_OF_PROCESSORS
,它会根据你的计算机配置自动确定可用的处理器核心数量。这将提高构建速度,因为它会同时利用多个处理器核心。
-
-
Jenkins集成:
cmake --build . --config Debug -- /m:%NUMBER_OF_PROCESSORS%
:cmake --build .
: 与之前的本地构建命令相同,这个部分告诉CMake构建项目,.
表示当前目录。--config Debug
: 这一部分指定了构建的配置为Debug,确保使用Debug构建类型。/m:%NUMBER_OF_PROCESSORS%
: 这部分是类似的,但在Jenkins环境中,你可以使用%NUMBER_OF_PROCESSORS%
来获取可用的处理器核心数量,而不是使用环境变量$env:NUMBER_OF_PROCESSORS
。
这些命令组合使你能够配置和构建一个Visual Studio 2019项目,确保使用了Debug配置和多线程构建。这对于在本地开发和在Jenkins CI/CD系统中实现自动化构建和持续集成非常有用。