【问题标题】:intel_sse2 problems when linking to gsl with icc使用 icc 链接到 gsl 时出现 intel_sse2 问题
【发布时间】:2012-06-04 23:13:46
【问题描述】:

我的程序链接到 PETSc 和 gsl,两个库都是用 icc 编译的。这是链接命令:

/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 调用 intel 编译器。

当我尝试链接到 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与intel编译器不兼容吗?

【问题讨论】:

    标签: linker shared-libraries gsl icc


    【解决方案1】:

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

    您没有向我们展示您的链接命令,但我的水晶球告诉我您正在尝试将 libgsl.sold(或者可能与 gcc)链接,而不是 icc

    一般来说,在 UNIX 上永远不应该将任何东西直接与ld 链接。始终使用适当的编译器驱动程序(在这种情况下为icc)。

    【讨论】:

    • 我使用 icc 链接,我编辑了我的问题以包含链接命令。
    【解决方案2】:

    在将某些代码与 gcc 链接到使用 icc 编译的 PETSc 版本时,我也会收到相同的错误消息。更重要的是,当最终代码使用最新的 Intel 12.x 编译器时,使用 Intel 11.x 编译 PETSc 会导致与 Intel 12.x 使用 11.x 相同的错误消息。

    所以检查一下,mpicc 确实使用了 Intel 11.1.072 编译器。检查mpic++ -showwhich icc

    【讨论】:

      【解决方案3】:

      可能没有设置英特尔环境。 尝试以下环境设置:

      source /etc/Intel_Compiler/10.0/XXXX/iccvars_intel64.sh
      source /etc/Intel_Compiler/10.0/XXXX/ifortvars_intel64.sh
      

      将该文件夹添加到您的英特尔编译器文件夹中。部分版本环境设置不同,您也可以试试:

      source /etc/Intel_Compiler/10.0/XXXX/iccvars.sh intel64
      source /etc/Intel_Compiler/10.0/XXXX/ifortvars.sh intel64
      

      希望有帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-03-09
        • 1970-01-01
        • 1970-01-01
        • 2017-06-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多