WSL环境下用CMake构建ngsolve时Intel MKL OneAPI报错
解决WSL下编译ngsolve时MKL配置错误的问题
问题核心
编译ngsolve执行cmake命令时出现MKL相关错误,根源是/opt/intel/oneapi/mkl/latest这个软链接指向了空的txt文件,导致cmake找不到正确的MKL配置文件MKLConfig.cmake。
解决步骤
确认MKL实际安装版本
查看/opt/intel/oneapi/mkl/目录下的实际版本文件夹(比如类似2024.0.0的目录),进入该目录检查是否存在lib/cmake/mkl/MKLConfig.cmake,确认MKL安装完整。修复
latest软链接
删除无效的软链接,重新指向正确的版本目录:sudo rm /opt/intel/oneapi/mkl/latest sudo ln -s /opt/intel/oneapi/mkl/[你的MKL版本号] /opt/intel/oneapi/mkl/latest替换
[你的MKL版本号]为实际查到的版本,比如2024.0.0。加载MKL环境变量
在执行cmake前,先加载Intel OneAPI的环境配置脚本:source /opt/intel/oneapi/setvars.sh或者单独加载MKL的环境脚本:
source /opt/intel/oneapi/mkl/latest/env/vars.sh指定MKL_ROOT重新运行cmake
可以直接在cmake命令中明确指定MKL的根目录,避免环境变量问题:cmake -DMKL_ROOT=/opt/intel/oneapi/mkl/latest -DCMAKE_INSTALL_PREFIX=${BASEDIR}/ngsolve-install ${BASEDIR}/ngsolve-src重新安装MKL(如果上述步骤无效)
如果MKL安装不完整,卸载现有版本后重新安装:sudo apt remove intel-oneapi-mkl sudo apt install intel-oneapi-mkl或者使用Intel官方安装工具重新部署OneAPI MKL组件。
内容的提问来源于stack exchange,提问作者SEBASTIÁN FERRA
相关产品推荐
相关产品推荐

