2014-01-16 65 views
2

我想通過'make ks_spectrum_hisq'命令使源代碼在milcv7.7.8/ks_spectrum中使用版本11.1 20090511編譯具有MPICC的羣集上的milcv7.7.8/ks_spectrum源然後在最後的錯誤出來作爲intel mpicc鏈接器錯誤未定義對`_mm_idivrem_epi32'的引用

com_mpi.o:在功能initialize_machine': ../generic/com_mpi.c:(.text+0xb447): undefined reference to_mm_idivrem_epi32'

我現在知道,這個功能_mm_idivrem_epi32是ia32intrin.h文件的英特爾編譯的一部分。

當我在14.0.0 20130728版本的intel編譯器的新羣集上使用最新的intel mpiicc時,代碼編譯成功。 那麼有什麼辦法告訴鏈接器包含函數_mm_idivrem_epi32的位置...

回答

0

_mm_idivrem_epi32()不是一個函數,而是一個編譯器的內在。如果處理得當,它將被英特爾的短矢量數學庫libsvml調用__svml_idivrem4()替代。

您很有可能被ICC自動矢量器中的一個錯誤所擊中。嘗試編譯與-no-vec相同的源文件,並看到它有任何影響。或者更好地使用您擁有的最新ICC版本。

相關問題