У меня есть существующий проект 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. Если вы их используете, вы все равно получаете большинство одинаковых ошибок. Он будет генерировать все ошибки Intellisense «ошибки», но он будет компилировать и работать правильно. Мой реальный код и код, связанный выше, не будут компилироваться, но ошибки фатальной сборки - это ошибки линкера, которые не возникают в MSVC, только при компиляции в Clang. Поэтому я полагаю, что должен сосредоточиться на ошибках ссылки. < /P>
#include
#include
//#include
//#define SIMD_SIZE_SPN 8
#define SIMD_SIZE_SPN 4
//#define SIMD_SIZE_SPN 2
int main() {
printf("\nhello ms clang\n");
double xarr[SIMD_SIZE_SPN] = {};
#if SIMD_SIZE_SPN == 8
__m512d vec1, vec2;
vec1 = _mm512_setr_pd(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0);
vec2 = _mm512_setr_pd(8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0);
vec1 = _mm512_mul_pd(vec1, vec2); //8, 14, 18, 20, 20, 18, 14, 8
_mm512_storeu_pd(xarr, vec1);
#elif SIMD_SIZE_SPN == 4
__m256d vec1, vec2;
vec1 = _mm256_setr_pd(1.0, 2.0, 3.0, 4.0);
vec2 = _mm256_setr_pd(4.0, 3.0, 2.0, 1.0);
vec1 = _mm256_mul_pd(vec1, vec2); //4, 6, 6, 4
_mm256_storeu_pd(xarr, vec1);
#else
__m128d vec1, vec2;
vec1 = _mm_setr_pd(1.0, 2.0);
vec2 = _mm_setr_pd(2.0, 1.0);
vec1 = _mm_mul_pd(vec1, vec2); //2, 2
_mm_storeu_pd(xarr, vec1);
#endif
printf("\nlast = %8.2f \n", xarr[SIMD_SIZE_SPN - 1]); //8, 4, 2
return 0;
}
Подробнее здесь: https://stackoverflow.com/questions/797 ... o-2022-cla
Как получить свой существующий проект MSVC для компиляции с компилятором Visual Studio 2022 Clang? [закрыто] ⇐ C++
Программы на C++. Форум разработчиков
1759504280
Anonymous
У меня есть существующий проект 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. Если вы их используете, вы все равно получаете большинство одинаковых ошибок. Он будет генерировать все ошибки Intellisense «ошибки», но он будет компилировать и работать правильно. Мой реальный код и код, связанный выше, не будут компилироваться, но ошибки фатальной сборки - это ошибки линкера, которые не возникают в MSVC, только при компиляции в Clang. Поэтому я полагаю, что должен сосредоточиться на ошибках ссылки. < /P>
#include
#include
//#include
//#define SIMD_SIZE_SPN 8
#define SIMD_SIZE_SPN 4
//#define SIMD_SIZE_SPN 2
int main() {
printf("\nhello ms clang\n");
double xarr[SIMD_SIZE_SPN] = {};
#if SIMD_SIZE_SPN == 8
__m512d vec1, vec2;
vec1 = _mm512_setr_pd(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0);
vec2 = _mm512_setr_pd(8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0);
vec1 = _mm512_mul_pd(vec1, vec2); //8, 14, 18, 20, 20, 18, 14, 8
_mm512_storeu_pd(xarr, vec1);
#elif SIMD_SIZE_SPN == 4
__m256d vec1, vec2;
vec1 = _mm256_setr_pd(1.0, 2.0, 3.0, 4.0);
vec2 = _mm256_setr_pd(4.0, 3.0, 2.0, 1.0);
vec1 = _mm256_mul_pd(vec1, vec2); //4, 6, 6, 4
_mm256_storeu_pd(xarr, vec1);
#else
__m128d vec1, vec2;
vec1 = _mm_setr_pd(1.0, 2.0);
vec2 = _mm_setr_pd(2.0, 1.0);
vec1 = _mm_mul_pd(vec1, vec2); //2, 2
_mm_storeu_pd(xarr, vec1);
#endif
printf("\nlast = %8.2f \n", xarr[SIMD_SIZE_SPN - 1]); //8, 4, 2
return 0;
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79781161/how-do-i-get-my-existing-msvc-project-to-compile-with-the-visual-studio-2022-cla[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия