gpt4 book ai didi

c++ - 如何更改路径以修复错误“./main : error while loading shared library libmkl_core. 所以?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:43:17 24 4
gpt4 key购买 nike

我已经安装了英特尔 mkl 库。内容有路径/home/user/intel/....... 。我必须使用提到的 make 文件运行 C++ 代码。

CC = /home/user/intel/bin/icpc -g
INCLUDE = -I/home/user/intel/mkl/include
LIB = -L/home/user/intel/mkl/lib/intel64 -lmkl_core -lmkl_intel_lp64 -lmkl_intel_thread -liomp5 -lpthread -std=c++11

我已成功安装 parallel_studio_xe_2019_update5_cluster_edition 。但我仍然收到错误消息 ./main :error while loading shared libraries。我该如何解决这个错误。我需要做哪些改变?

最佳答案

与共享库的链接实际上分两步完成:构建时(链接器需要找到库的地方);以及运行时(操作系统动态加载时需要查找库时)。

当使用安装在非标准位置的库进行构建时,您可以使用 -L 选项告诉链接器在哪里可以找到库。不幸的是,它没有告诉动态加载程序库所在的位置。

要告诉动态加载器动态库的位置有几种方法,我推荐的方法是在构建时添加一个标志,以便链接器将位置嵌入可执行程序文件中供动态加载器查看.这是通过选项 -Wl,-rpath,/path/to/lib/directory 完成的。

在您的情况下,您需要将选项 -Wl,-rpath,/home/user/intel/mkl/lib/intel64 添加到 LIB 生成文件变量。


为了澄清,完整的行应该是

LIB = -L/home/user/intel/mkl/lib/intel64 -Wl,-rpath,/home/user/intel/mkl/lib/intel64 -lmkl_core -lmkl_intel_lp64 -lmkl_intel_thread -liomp5 -lpthread -std=c++11 

也就是说,您需要两个旧的 -L 选项(因为您当前在显示的代码中有它)添加新选项。

关于c++ - 如何更改路径以修复错误“./main : error while loading shared library libmkl_core. 所以?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58029530/

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