【问题标题】:Building .SLN files on Windows without Visual Studio?在没有 Visual Studio 的情况下在 Windows 上构建 .SLN 文件?
【发布时间】:2021-07-29 02:23:25
【问题描述】:

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

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

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

我已尝试搜索此问题,但没有找到我要查找的内容。提前谢谢你。

【问题讨论】:

  • Visual Studio > New Project > Cmake project

标签: c++ windows cmake build sln-file


【解决方案1】:

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

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

如果是 single-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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-07
    • 1970-01-01
    • 2015-10-29
    • 2014-01-28
    • 2010-12-16
    • 2022-12-03
    • 1970-01-01
    • 2011-01-17
    相关资源
    最近更新 更多