Я составляю большую систему HPC, написанную на Fortran с использованием компилятора Intel (ifort). Есть около нескольких сот отдельных модулей и все они компилироваться, но компоновщик бросает эту ошибку:ifort linker undefined reference
phys_grid.o(.text+0x91b2): In function `phys_grid_mp_assign_chunks_':
: undefined reference to `_mm_idivrem_epi32'
_mm_idivrem_epi32
, кажется, являются результатом автоматической векторизации компилятора, но если компилятор, то почему я Я получаю эту ошибку? Нужно ли мне связать какую-то дополнительную библиотеку?
Update:
Используя nm
, я был в состоянии проследить функцию libsvml
, но связь с этим не помогло. Теперь здесь, как представляется, лежит проблема: ia32intrin.h
объявляет функцию следующим образом:
__m128i __cdecl _mm_idivrem_epi32(__m128i * r, __m128i v1, __m128i v2); //__svml_idivrem4
Но с выходом nm
«s, символ в библиотеке __svml_idivrem4
. Согласно файлу заголовка, это те же функции, но могу ли я сказать это компоновщику?
У меня это не было, но я запускаю версию 9.1, и похоже, что у вас 11.1. Касабланка, какую версию компилятора вы используете? –
Я использую версию 11.1. В самом деле, заголовочный файл Mark упомянутый содержит объявление для _mm_idivrem_epi32, но я все еще пытаюсь выяснить, с какой именно библиотекой мне нужно установить связь. – casablanca