使用“英特尔MKL:ld:未知”选项编译C代码:-需要时为否

使用“英特尔MKL:ld:未知”选项编译C代码:-需要时为否,c,gcc,intel-mkl,C,Gcc,Intel Mkl,我编写了一个C文件template.C,它使用我已经安装的MKL英特尔库。我正在使用这个shell脚本编译我的代码template.c。假设C文件是最小的—它导入MKL库并具有一个主函数—就是它 source /opt/intel/compilers_and_libraries_2019.5.281/mac/mkl/bin/mklvars.sh intel64 gcc-9 -fopenmp -m64 -I${MKLROOT}/include -c template.c gcc-9 -L${MKL

我编写了一个C文件template.C,它使用我已经安装的MKL英特尔库。我正在使用这个shell脚本编译我的代码template.c。假设C文件是最小的—它导入MKL库并具有一个主函数—就是它

source /opt/intel/compilers_and_libraries_2019.5.281/mac/mkl/bin/mklvars.sh intel64
gcc-9 -fopenmp -m64 -I${MKLROOT}/include -c template.c
gcc-9 -L${MKLROOT}/lib -Wl,--no-as-needed -lmkl_intel_lp64 -lmkl_gnu_thread -lmkl_core -lgomp -lpthread -lm -ldl template.o -o template
./template
但是,我在Mac Intel 64位处理器上遇到以下错误:

ld:未知选项:-不需要

有没有关于为什么会发生这种情况的线索?我正在使用自制的最新GCC版本


脚本的第一行来源于脚本使用的环境变量,如$MKLROOT。之后,它将创建一个对象文件,并最终运行名为template的可执行文件。

请确保您已为所选接口层使用了推荐的编译器选项

注意:将IntelR MKL库与编译用于 不同的接口层可能导致运行时错误

请浏览以下链接以供参考:


“英特尔MKL链接线路顾问”

MKL链接器顾问没有显示如何链接lmkl_gnu_线程。@Gennady.F非常感谢。如果你愿意,可以自由回答你的评论。