Issues / #3566

#3566 [Other] Windows setup: fail fast when MSVC host compiler is older than VS2022 (C++20 sources)

open · @ogerly · 2 Kommentare · Auf GitHub

Setup & installNVIDIA / CUDAModels & quantsWindows

Beschreibung

Context: On Windows, setup.py found no prebuilt engine for the current release (404), so the engine was built from source. The build then failed with a cryptic error:

    device.cu / pinned.cu:
    error: qualified name is not allowed to denote a constexpr function
    (inside `namespace strata::core { ... }`)

Root cause: the installed host compiler was MSVC 19.29 (Visual Studio 2019). nvcc silently ignores `-std=c++20` with that host compiler, so C++20 features in our own headers fail mid-compile.

Fix that worked: install Visual Studio 2022 BuildTools, AND delete the stale CMake cache (it pins the old compiler), then reconfigure + rebuild (163 targets, success).

Suggestion: please consider the same fail-fast idea as in #3557 (ARM): before starting a source build on Windows, detect the MSVC/CL version and stop early with a message like

    "Strata requires VS2022 (or newer) BuildTools - install it, then clear the CMake cache and run setup again."

The current error ("qualified name is not allowed") cost us hours and is essentially undebuggable without knowing this toolchain rule.

Secondary: when no prebuilt engine exists for the current version, a clear line "engine will be compiled from source - needs VS2022" would make the detour predictable.

Environment: Windows 11, CUDA 13.4, driver 615.78, RTX 5090.

Strata version: 0.1.45.3 (engine built from source)

Mehr auf der Site

Links zu Install, Modellen, Releases.