У меня есть библиотека C ++, встроенная в Visual Studio 2017, которая использует встроенные функции AVX-512. Мне нужно связать библиотеку с кодом C200 VS2008. Библиотека используется для извлечения строк из изображения. Все внутренние инструкции инкапсулированы в библиотеке. Код VS2008 проходит в char* data
, LineSpec
(структура с 4 поплавками) и char* result
, который заполняется извлеченными строками.
Я не могу связать библиотеку из-за ошибки C1083: Не удается открыть файл включения: immintrin.h
, Я также не могу собрать библиотеку в VS2017 с использованием набора инструментов VS2008 по той же причине.
Цель состоит в том, чтобы увеличить скорость извлечения с помощью инструкций AVX-512 при компиляции остальной части кода с помощью VS2008. Я новичок в встроенных и микширующих платформах. Есть ли у вас какие-либо предложения о том, как использовать библиотеку в VS2008?
Ты не можешь
Для вызова функции, использующей регистры ymm, компиляторам необходимо выдать инструкции для их подготовки в соответствии с ABI. Но AVX-512 в 2008 году не существовало, поэтому у VS2008 нет возможности узнать об инструкциях ABI или AVX-512
И затем при связывании вам также нужно знать о наборе команд, чтобы узнать, какой адрес исправить, хотя это может быть проще решить с помощью смещения, хранящегося в объектном коде.
Короче говоря, вам нужно обновить компилятор, а не использовать десятилетний
Других решений пока нет …