gpt4 book ai didi

c - mkl 界面运行时出现段错误

转载 作者:太空宇宙 更新时间:2023-11-04 07:27:50 34 4
gpt4 key购买 nike

我正在运行 mkl_lab_solution.c这是使用 MKL 的示例,我可以正确编译它,但在运行时出现段错误。我的运行时如下:

  1. 操作系统是centos 6.3
  2. gcc的版本是4.1.2
  3. mkl 是 mkl_10.3.12.361
  4. makefile在下面

    gcc -g -L/opt/intel/composer_xe_2011_sp1.12.361/mkl/lib/intel64 -lmkl_intel_ilp64 -lmkl_intel_lp64 -lmkl_intel_sp2dp -lmkl_intel_thread -lmkl_core -lpthread -L/opt/intel/composer_xe_2011._lib61/sp61/sp61.1compil -liomp5 -L/usr/lib64 -lstdc++ -I/opt/intel/composer_xe_2011_sp1.12.361/mkl/include -o test mkl-lab-solution.c

最佳答案

由于这在我的系统上运行良好,让我指出可能的错误。首先,您需要运行 。/path/to/intel/compilervars.sh intel64 设置了所有环境变量,如 MKLROOT。二、查看intel mkl link line advisor对于您系统上的选项。所以阅读你的编译命令我猜:linux,gnu 编译器,动态链接,64 位目标架构,64 位长指针,多线程,intel omp 库。

这些设置给我:

链接器选项:

-L$(MKLROOT)/lib/intel64 -lmkl_intel_ilp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread -lm

编译选项:

-DMKL_ILP64 -m64 -I$(MKLROOT)/include

无论出于何种原因,MKLROOT 周围的括号在 bash 上不起作用,所以只需删除它们即可。接下来记得把所有的编译选项都放在链接器选项的前面。最终命令行应如下所示:

gcc mkl-lab-solution.c -DMKL_ILP64 -m64 -I$MKLROOT/include -L$MKLROOT/lib/intel64 -lmkl_intel_ilp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread -lm

由于您遇到运行时错误,我怀疑您将英特尔 MKL 库与为不同接口(interface)层编译的对象链接起来。

关于c - mkl 界面运行时出现段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16567238/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com