WSL 上的 Intel MKL 出现符号查找错误

问题描述 投票:0回答:1

我有一个 C++ 项目并使用 CMake 构建它。我在 Windows 上没有问题。然而,当我在 WSL 上尝试时,我得到了

symbol lookup error: /opt/intel/oneapi/mkl/latest/lib/libmkl_intel_thread.so.2: undefined symbol: omp_get_num_procs
。配置时我没有收到任何错误。

PATH
我有
/opt/intel/oneapi/2024.0/lib/
。 我有:

  • MKL_ROOT=/opt/intel/oneapi/mkl/latest/
  • IPP_ROOT=/opt/intel/oneapi/ipp/latest
  • LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu

作为环境变量。

注:

WSL Ubuntu 22.04.3 LTS。 WSL 2

我在构建时没有收到错误或警告。我还成功地运行了不使用 MKL 的不同测试。

openmp windows-subsystem-for-linux dynamic-linking intel-mkl
1个回答
0
投票

symbol lookup error: .../libmkl_intel_thread.so.2: undefined symbol: omp_get_num_procs

该错误意味着

libmkl_intel_thread.so.2
未正确链接。

您可以通过在链接行末尾添加

-lgomp
来解决此问题。


PATH
我有
/opt/intel/oneapi/2024.0/lib/

这是放入你的PATH中的

错误
的东西;你应该删除它。

LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu

您应该取消设置

LD_LIBRARY_PATH
- 默认情况下会搜索
/usr/lib/x86_64-linux-gnu
,并且不应该在 LD_LIBRARY_PATH 中。
    

© www.soinside.com 2019 - 2024. All rights reserved.