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. ヘッダーファイルによると、これらは同じ機能ですが、これをリンカに伝えることはできますか?