У меня есть существующий проект C ++, который хорошо собирает MSVC, и я пытаюсь заставить его компилировать в Visual Studio 2022 с LLVM (CLANG-CL). В настоящее время я использую стандартный предварительный просмотр языка C ++ ISO C ++ 23, хотя я не думаю, что это необходимо и предпочел бы C ++ 20. < /p>
Visual Studio Installer сообщает мне, что у меня есть «C ++ Clang Compiler для Windows (19.1.5)», а «поддержка MSBuild для сотни для компиляции CLANG). компилировать ошибки. Некоторые популярные: < /p>
e0020 идентификатор "__bf16" не определен (в avx512bf16intrin.h, avxintrin.h и другие) < /p>
e0020. Глобальная область не имеет "int8_t" (in cstdint, xytility, _msvc_m.mpc. Другие) < /p>
e0020 идентификатор setjtmp_float128 не определен (в setjtmp.h) < /p>
Что мне нужно сделать, чтобы преодолеть горб? Конечно, ответ прост и дублируется на этом, но я гугл в течение 3 или 4 часов и, очевидно, не нашел правильных ключевых слов для этого вопроса. Я начинал подозревать, что мои проблемы во многом связаны с VCL Agner, поэтому я просто бросил его пример -диспетчер в новый проект и набрал джекпот ошибки компиляции. Примечание, по сравнению с точным кодом Agner, я делаю некоторые незначительные изменения файлов instrset.h и instrset_detect.cpp, чтобы положить Clang через MSC. Код Agner имеет Clang ниже MSC и отлично работает для компиляции в автономном кланге, но не в Visual Studio Clang. Agner's Original instrset.h и instrset_detect.cpp сохраняются в подкаталории VCL_AGNER. Если вы используете их, вы все равно получаете большинство одинаковых ошибок.
Подробнее здесь: https://stackoverflow.com/questions/797 ... o-2022-cla