【问题标题】:Still the link errors about Intel-MKL仍然是关于 Intel-MKL 的链接错误
【发布时间】:2013-10-05 06:51:53
【问题描述】:

这是QT项目的配置:

    unix {
    INCLUDEPATH += /opt/intel/mkl/include
    LIBS += -L/opt/intel/mkl/lib/intel64 \
    -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -lmkl_def \
    -liomp5 -lpthread -ldl -lm
    }

错误是

我已经链接了-lm 标志,为什么?

更新:

   ubuntu@ubuntu-desktop:/opt/intel/mkl/tools$ ./mkl_link_tool -check_mkl_presence

   Intel(R) Math Kernel Library (Intel(R) MKL) Link Tool v4.0
   ==========================================================

   Unknown mode. Specify -libs, -opts, -env or compilation line

   Configuration
   =============

   MKL version:            11.1
   OS:                     lnx
   Architecture:           intel64
   Compiler:               intel_f
   Linking:                dynamic
   Interface layer:        lp64
   Parallel:               yes
   OpenMP library:         iomp5

   ubuntu@ubuntu-desktop:/opt/intel/mkl/tools$ ./mkl_link_tool -check_mkl_presence -libs -opts -env

   Intel(R) Math Kernel Library (Intel(R) MKL) Link Tool v4.0
   ==========================================================

   Output
   ======

   Compiler option(s):
   -I/opt/intel/composer_xe_2013_sp1.0.080/mkl/include

   Linking line:
   -L/opt/intel/composer_xe_2013_sp1.0.080/mkl/lib/intel64 -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -openmp -lpthread -lm

   Environment variable(s):
   export LD_LIBRARY_PATH=/opt/intel/composer_xe_2013_sp1.0.080/mkl/../compiler/lib/intel64:/opt/intel/composer_xe_2013_sp1.0.080/mkl/lib/intel64:$LD_LIBRARY_PATH;

   ubuntu@ubuntu-desktop:/opt/intel/mkl/tools$ 

更新2:

    ubuntu@ubuntu-desktop:/opt/intel/mkl/lib/intel64$ ldd libmkl_core.so 
    linux-vdso.so.1 =>  (0x00007fff2b589000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fe268d8d000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fe2689ce000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fe26a50c000)
    ubuntu@ubuntu-desktop:/opt/intel/mkl/lib/intel64$ 

我已经使用ldd 命令查看了 libmkl_core.so 需要哪些库,它没有显示 libm.so 或数学库。为什么在 Qt 创建器中显示undefined reference to 'logf'

【问题讨论】:

  • 您可以添加更多相关和流行的标签,例如c++qt。否则,除了关注intel-mkl 的人之外,没有人会看到您的问题。这就是 StackOverflow 的工作原理。
  • 另一个建议是尝试提供由您的 IDE 生成的低级 gcc 编译和链接命令行。这将提供更多信息。

标签: c++ intel lapack blas intel-mkl


【解决方案1】:

除了帮助您为gcc/icc 编译器生成正确编译和链接选项的Intel MKL link line advisor 之外,您可能还需要注意另一个预先请求——设置环境变量。

为了使用 MKL,您需要正确设置一些环境变量。英特尔提供了一个脚本来简化此设置。你可以像.bash_profile 这样在你的shell 配置文件中添加一行。请阅读 MKL 文档的入门部分了解更多详细信息。

http://software.intel.com/en-us/node/438542

【讨论】:

  • 谢谢,埃里克。我更新了我的问题,它显示了有关如何链接 MKL 库的一些更有用的信息。请检查一下。尽管我已经按照上面的说明进行了链接,但它仍然存在一些错误。
  • 您是否检查过您的系统中是否安装了 libm.so 或 libm.a?
  • Eric,我已经更新了UPDATED2的问题,请查收。谢谢。
  • 我认为您可以向 QT 人员询问有关如何在 IDE qt 创建器中使用自定义库构建程序的问题,而不是向 MKL 人员询问如何链接 MKL。
  • 嗨,埃里克,我已经解决了这个问题。我将 QT 项目更改为使用 Intel icc 编译器而不是 gcc。它有效。
猜你喜欢
  • 2020-09-05
  • 2012-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-13
  • 2013-03-27
  • 2016-05-06
  • 1970-01-01
相关资源
最近更新 更多