使用 cmake 和命令行构建 MSVC 项目

Posted

技术标签:

【中文标题】使用 cmake 和命令行构建 MSVC 项目【英文标题】:Building MSVC project with cmake and command-line 【发布时间】:2021-10-04 18:23:31 【问题描述】:

美好的一天!

让我们有一个源文件main.cpp 和一个包含下一个文本的CMakeLists.txt 文件:

cmake_minimum_required(VERSION 2.6)
project(tmp)

set(CMAKE_CXX_FLAGS "-Wall")
add_executable(tmp.elf main.cpp)

假设main.cpp 文件包含一个简单的“Hello, World!”程序:

#include <stdio.h>

int main()

  printf("Hello, World!\n");
  return 0;

我们可以使用cmake CMakeLists.txt &amp;&amp; make 构建项目。然后我们将获得可以运行的tmp.elf 文件。或者我们可以得到没有tmp.elf 文件并假设main.cpp 源文件有问题(假设编译器和cmake 已正确安装在构建系统上)。

那么,问题是:我们如何在 Windows 机器上做同样的事情?例如。在运行cmake CMakeLists.txt 之后,我们将获得tmp.vcproj 文件,然后我们需要以某种方式构建它。如何使用命令行执行构建过程? (Java的Process.start(),其实是:-P)

【问题讨论】:

【参考方案1】:

您可以通过使用 --build 选项调用 cmake,以独立于平台和 CMake 生成器的方式开始构建:

cmake --build .

对于多配置生成器,可以通过以下方式指定配置:

cmake --build . --config Release

另见documentation。

【讨论】:

是的,它成功了:cmake CMakeLists.txt -G "Visual Studio 9 2008" 然后 - cmake --build .。谢谢! =) @GameDeveloper 它适用于 Visual Studio 11,请在 cmake site 提交错误。

以上是关于使用 cmake 和命令行构建 MSVC 项目的主要内容,如果未能解决你的问题,请参考以下文章

如何在 MSVC 2019 中的 CMake 管理的 C++ 项目中将命令行启动参数添加到发布目标?

Ninja 构建中的 CMake 命令行参数

如何强制 cmake 在没有完整路径的情况下使用 cl.exe?

使用命令行在 Visual Studio 2019 中打开 CMake 项目

如何使用 CMAKE 从命令行在 Windows 上构建 x86 和/或 x64?

CMake与MSVC工程化实践