Поскольку Microsoft сломала компилятор (снова) в версии 14.29.30037
(по какой-то причине CMAKE сообщила как 19.29.30038.1
) (смотрите здесь) Мне нужно вернуться к 14.28.something
. Я уже скачал 14.28.29910
через установщик Visual Studio, и моя папка Microsoft Visual Studio\2019\Community\VC\Tools\MSVC
теперь содержит папки с обеими версиями.
Однако я не могу найти способ заставить CMAKE использовать эту конкретную старую версию. Я использую интеграцию CLion CMAKE, и мои настройки выглядят так.
Обратите внимание, что я уже пробовал устанавливать пути Make
, C Compiler
и C++ Compiler
к их аналогам в старом компиляторе. Это приводит к тому, что CMAKE сообщает о желаемой версии компилятора 19.28.29915.0 (кстати, нравится количество различных соглашений о версиях, которые использует Microsoft). Несмотря на это, когда я пытаюсь построить проект, я получаю следующее:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\yvals_core.h(541): fatal error C1189: #error: STL1001: Unexpected compiler version, expected MSVC 19.29 or newer.
NMAKE : fatal error U1077: 'C:\PROGRA~2\MICROS~2\2019\COMMUN~1\VC\Tools\MSVC\1428~1.299\bin\HostX86\x64\cl.exe' : return code '0x2'
Stop.
Я предполагаю, что это означает, что не все части компилятора (в данном случае некоторые из них) были переведены на старую версию.
Если по какой-либо причине какой-либо фрагмент моего кода поможет вам ответить на этот вопрос, репозиторий доступен здесь
Также обратите внимание, что, как бы я ни хотел просто переключиться на GCC, я не могу этого сделать из-за поддержки CUDA в Windows. Я также не могу использовать другую (более старую) версию Visual Studio, поскольку для проекта требуется C++ 20. Кроме того, бонусный вопрос: как такая важная компания, как Microsoft, может буквально сломать инструмент разработки корпоративного класса?