я написал и отлажены некоторые AVX код с г ++ и теперь я пытаюсь заставить его работать с MSVC, но я получаюнеразрешенный внешний символ __mm256_setr_epi64x
ошибка LNK2019: неразрешенный внешний символ __mm256_setr_epi64x ссылка в функция "частное: объединение __m256i __thiscall avx_matrix :: avx_bit_mask (без знака целое) Const" (avx_bit_mask @ avx_matrix @@ ABE AT__m256i @@ I @ Z?)
ссылаются, часть кода
...
#include <immintrin.h>
...
/* All zeros except for pos-th position (0..255) */
__m256i avx_matrix::avx_bit_mask(const std::size_t pos) const
{
int64_t a = (pos >= 0 && pos < 64) ? 1LL << (pos - 0) : 0;
int64_t b = (pos >= 64 && pos < 128) ? 1LL << (pos - 64) : 0;
int64_t c = (pos >= 128 && pos < 192) ? 1LL << (pos - 128) : 0;
int64_t d = (pos >= 192 && pos < 256) ? 1LL << (pos - 256) : 0;
return _mm256_setr_epi64x(a, b, c, d);
}
...
- Я включил
/arch:AVX
, но это не имеет никакого значения. - Моя машина определенно поддерживает AVX - это то же, что я использовал для исходного проекта Linux.
- Также http://msdn.microsoft.com/en-us/library/hh977022.aspx перечисляет
_mm256_setr_epi64x
среди доступных свойств.
Любая помощь будет очень признательна.
Ваша ссылка говорит: «Это соединение ненадежный». –
Хех - похоже, Microsoft забыла обновить свой сертификат. –
Ну +1 для обнаружения, что это якобы было исправлено. Тем не менее, это 2014. Кто действительно использует 32-битный режим? OS X теперь только 64-битная. Ubuntu постепенно отказывается от 32-битного за один год. MSFT должен был установить это 8 лет назад. –