我正在使用 Intel 编译器 (ifort) 编译一个用 Fortran 编写的大型 HPC 系统。大约有几百个单独的模块,它们都编译得很好,但是链接器抛出了这个错误:
phys_grid.o(.text+0x91b2): In function `phys_grid_mp_assign_chunks_':
: undefined reference to `_mm_idivrem_epi32'
这_mm_idivrem_epi32
似乎是编译器自动矢量化的结果,但如果编译器生成它,为什么我会收到此错误?我需要链接一些额外的库吗?
更新:
使用nm
,我能够将函数跟踪到,libsvml
但与之链接并没有帮助。现在这里似乎存在问题:ia32intrin.h
声明函数如下:
__m128i __cdecl _mm_idivrem_epi32(__m128i * r, __m128i v1, __m128i v2); //__svml_idivrem4
但是从nm
的输出来看,库中的符号是__svml_idivrem4
. 根据头文件,这些是相同的功能,但我可以告诉链接器吗?