我有一个 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 的不同测试。
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
中。