使用生成器 Visual Studio 17 2022 在 x64 中构建

问题描述 投票:0回答:1

我想对我的项目进行 x64 构建,但无论我做什么,每当我将生成器设置为“Visual Studio 17 2022”时,CMAKE_GENERATOR_PLATFORM 都会在 CMakeCache 文件中设置为 Win32。

我已在我的 cmakelist 文件中包含 set(CMAKE_GENERATOR_PLATFORM x64) 但无济于事。我尝试将生成器设置为“Visual Studio 17 2022 win64”,但随后收到一条错误,指出它找不到编译器。我已经删除了缓存并重新编译了大约一百万次。我检查了我是否拥有所有必要的 VS 扩展,并尝试“修复”Visual Studio。

cmake
1个回答
0
投票

我想对我的项目进行 x64 构建,但无论我做什么,每当我将生成器设置为“Visual Studio 17 2022”时,CMAKE_GENERATOR_PLATFORM 都会在 CMakeCache 文件中设置为 Win32。

我无法重现这个。请尝试制作一个几乎不执行任何操作的小型 CMake 项目。

cmake_minimum_required(VERSION 3.24)

project(FOOBAR)

if (CMAKE_SIZEOF_VOID_P EQUAL 4)
    message(STATUS "32 bit build!")
endif()

if (CMAKE_SIZEOF_VOID_P EQUAL 8)
    message(STATUS "64 bit build!")
endif()

上面的 CMakeLists.txt 只会告诉我们我们是为 32 位还是 64 位构建。

然后尝试运行 cmake,如下所示:

cd foobar # Directory that contains the new CMakeLists.txt
cmake -S . -B build -G "Visual Studio 17 2022" --fresh

默认的目标平台名称(架构)是主机的平台名称(架构)。这意味着您应该默认以 x64 为目标(除非您运行的是 32 位版本的 Windows,但这种情况不太可能发生)。请参阅文档

我已在我的 cmakelist 文件中包含 set(CMAKE_GENERATOR_PLATFORM x64) 但无济于事。

CMAKE_GENERATOR_PLATFORM 特定于 Visual Studio 生成器,旨在通过 -A 选项设置。您不应该在 cmakelist 文件中设置它。

我尝试将生成器设置为“Visual Studio 17 2022 win64”,但随后收到一条错误,指出它找不到编译器。

不要这样做。您可以使用 -A

指定平台
    cmake -S . -B build -G "Visual Studio 17 2022" -A Win32 --fresh
    cmake -S . -B build -G "Visual Studio 17 2022" -A x64 --fresh
    cmake -S . -B build -G "Visual Studio 17 2022" -A ARM --fresh
    cmake -S . -B build -G "Visual Studio 17 2022" -A ARM64 --fresh
© www.soinside.com 2019 - 2024. All rights reserved.