intel_sse2问题联系起来与国际刑事法院GSL时(intel_sse2 problems wh

2019-09-17 18:29发布

我的程序链接到两个的PETSc和GSL,并且这两个库与国际刑事法院进行了汇编。 这里的链接命令:

/usr/local/mpich2/bin/mpicc -Wall -Wwrite-strings -Wno-strict-aliasing -Wno-unknown-pragmas -g3 -I/usr/local/gsl-icc-1.15/include/ -I/usr/local/gsl-icc-1.15/include/ -L/usr/local/gsl-icc-1.15/lib/ -lgsl -lgslcblas prog_name.o -L/usr/local/petsc-3.2-p6/lib  -lpetsc -lX11 -lpthread -llapack -lblas -L/central/intel/Compiler-11.1.072/mkl/lib/em64t -L/central/intel/Compiler-11.1.072/lib/intel64 -L/central/intel/Compiler-11.1.072/tbb/intel64/cc3.4.3_libc2.3.4_kernel2.6.9/lib -L/usr/lib/gcc/x86_64-redhat-linux/4.1.2 -ldl -lgcc_s -lifport -lifcore -limf -lsvml -lm -lipgo -lirc -lpthread -lirc_s -lm -lstdc++ -lstdc++ -ldl -lgcc_s -ldl  -o prog_name

MPICH_CC设置为ICC,所以mpicc称英特尔编译器。

当我尝试链接到GSL .so文件,我得到了以下错误:

gsl-icc-1.15/lib/libgsl.so: undefined reference to `__intel_sse2_strcpy'
gsl-icc-1.15/lib/libgsl.so: undefined reference to `__intel_sse2_strchr'
gsl-icc-1.15/lib/libgsl.so: undefined reference to `__intel_sse2_strncpy'

可能是这个错误是什么原因? GSL是与英特尔编译器不兼容?

Answer 1:

可能是这个错误是什么原因?

你没告诉我们你的链接命令,但我的电子结构球告诉我,你是正在尝试链接libgsl.sold (或者用gcc ),而不是icc

在一般情况下,人们不应该直接链接任何ld在UNIX上。 始终使用适当的编译器驱动程序( icc在这种情况下)。



Answer 2:

链接一些代码,使针对与ICC编译一个的PETSc版本的GCC时,我也得到了同样的错误消息。 更有甚者,当使用的最终代码最新的Intel 12.x的编译器,并与英特尔编译PETSc的11.x的结果在相同的错误消息英特尔的12.x使用11.x的

因此,检查,那真的mpicc使用英特尔编译器11.1.072。 检查mpic++ -showwhich icc



文章来源: intel_sse2 problems when linking to gsl with icc