0

我最近一直在尝试在 C++ 中设置我的 CMake 环境和一些“hello world”代码。我添加了一个CMakeLists.txt并添加了我的配置,但是当我cmake .在命令行中运行时,与所有教程都不同。

教程中的人使用的是基于 Unix 的系统,因此该命令cmake .正在生成一个“makefile”。然后,他们使用命令构建了 makefile make

由于我在 Windows 上,它生成了一个 msvc.sln文件而不是一个 makefile。我的问题是 - 我如何构建 .sln 文件,类似于他们在 Linux 上的做法?我想在没有 Visual Studio 2019 的情况下执行此操作,最好在命令提示符下执行。

我试过搜索这个问题,但没有找到我要找的东西。先感谢您。

4

1 回答 1

2

首先,您永远不应该使用cmake .. 它会以名称冲突的形式引发问题,并且几乎不可能进行干净的重建。

如果您使用的是最新版本的 CMake(您应该是),则构建项目的标准方式取决于后端生成器是single-config还是multi-config

如果是单一配置(如 Make 或 Ninja),则命令为:

$ cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -S /path/to/sources -B /path/to/build
$ cmake --build /path/to/build

调用 CMake 时,该目录/path/to/build不需要存在。如果你想要一个Debug构建,而不是Release,你只需在第一行替换它。你不应该在没有设置的情况下运行单一配置生成器CMAKE_BUILD_TYPE

如果它是multi-config,比如 Visual Studio,那么命令是:

$ cmake -G "Visual Studio 16 2019" -A x64 -Thost=x64 -S /path/to/sources -B /path/to/build
$ cmake --build /path/to/build --config Release

这里的主要区别在于配置是在第二个(构建)命令中指定的,而不是第一个(配置)。

于 2021-05-06T18:11:35.980 回答