gpt4 book ai didi

linux - $MKLROOT 未定义(Ubuntu)

转载 作者:行者123 更新时间:2023-12-04 04:07:13 24 4
gpt4 key购买 nike

环境:Linux,Ubuntu 16.04

我尝试从英特尔网站 (https://software.intel.com/content/www/us/en/develop/tools/math-kernel-library.html) 下载 MKL 库,并尝试将 mkl 链接到我的程序。

(我刚刚下载了 l_mkl_2020.1.217.tar 文件,将其解压缩,然后在该文件中运行 ./install.sh)

但是每次我尝试构建时,都会打印以下消息

$ pkg-config --cflags --libs mkl-dynamic-lp64-iomp.pc

Variable 'MKLROOT' not defined in 'mkl-dynamic-lp64-iomp.pc

即使我尝试了 export MKLROOT=/opt/intel/mkl (这是我的 mkl 根路径),
还是找不到 MKLROOT小路

我还尝试运行 test.sh 文件,如下所示,
echo $MKLROOT

它清楚地打印 MKLROOT变出。

intel .pc 文件中的变量是否与 Ubuntu 上的环境变量有些不同?以及为什么我的 mkl 无法联系到 MKLROOT多变的?

如果有人能回答这个问题,我会非常感谢你。谢谢!

- - 添加 - -

我刚刚通过添加单行解决了这个问题
MKLROOT=/opt/intel/mkl
mkl-dynamic-lp64-iomp.pc 的第一部分(即使它的只读文件,我只是输入了 wq! ),但我认为这不是一个激进的解决方案。仍然需要答案,任何帮助将不胜感激

最佳答案

似乎 pkg-config元数据文件不适用于外部环境变量,即使您正确导出了它们。
但是pkg-config对此有另一种机制。您可以设置PKG_CONFIG_MKL_DYNAMIC_LP64_IOMP_MKLROOT :

$ echo $MKLROOT
/opt/intel/compilers_and_libraries_2020.4.304/linux/mkl
$ pkg-config --cflags mkl-dynamic-lp64-iomp
Variable 'MKLROOT' not defined in '/opt/intel/compilers_and_libraries_2020.4.304/linux/mkl/bin/pkgconfig/mkl-dynamic-lp64-iomp.pc'
$ export PKG_CONFIG_MKL_DYNAMIC_LP64_IOMP_MKLROOT=$MKLROOT
$ pkg-config --cflags mkl-dynamic-lp64-iomp
-I/opt/intel/compilers_and_libraries_2020.4.304/linux/mkl/include
一般情况下,环境变量 PKG_CONFIG_XXX_VVV将覆盖变量 VVV包装内 XXX .两个 XXXVVV必须为大写,并且将非字母数字字符转换为下划线。 (见 man pkg-config)
(请注意,您的包是 imkl-dynamic-lp64-iomp ,没有 .pc 扩展名。)

关于linux - $MKLROOT 未定义(Ubuntu),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62298109/

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