英特尔性能原语 (IPP) 运行时错误

Posted

技术标签:

【中文标题】英特尔性能原语 (IPP) 运行时错误【英文标题】:Intel Performance Primitive (IPP) runtime error 【发布时间】:2010-01-22 16:25:11 【问题描述】:

我有不是我写的源代码,我无法联系到作者。它是用 C++ 编写的,需要 libjpeg、boost 和 Intel Performance Primitives。

编译是一件苦差事,但经过几天的问题解决后,它编译了。现在,我收到以下运行时错误:error while loading shared libraries: libippi.so.5.1: cannot open shared object file: No such file or directory。无论命令行参数如何,错误都会立即发生。

我下载了适用于 Ubuntu 9.04 的 IPP 试用版。在/opt/intel/ipp/6.1.2.051/ia32/sharedlib/ 下,我看到一堆以lib*libippi* 开头的文件,包括libippi.so.6.1。所以我想我会尝试创建一个指向libippi.so.6.1 的链接libippi.so.5.1,但这不起作用。我尝试在本地目录中创建一个类似的链接,但这也不起作用。

我不熟悉这些库中的任何一个,所以我不知道还能尝试什么。我在网上或 SO 上找不到任何解决方案。如果您能帮我解决这个错误,我将不胜感激。谢谢。

【问题讨论】:

【参考方案1】:

我知道已经有一段时间了,但是这里有一个解决方案可以帮助解决这个问题 http://www.w-bremer.de/en/howtos/72-opencv-ubuntu-ipp :)

【讨论】:

【参考方案2】:

看起来该应用是针对旧版本的 IPP 编译的。由于 6.1.2 被称为 libippi.so.6.1,因此安装 IPP 5.1.x 可能很简单(尽管 linux 库版本控制没有这么简单。)

如果您为英特尔非商业 IPP 下载区创建登录名,您可以四处挖掘,看看他们是否提供旧版本。

或者,做一个快速的谷歌搜索,我发现了这个似乎有它的 FTP 站点,但请注意 我实际上并没有下载或尝试过这个代码,并且无法验证这是否是合法镜像是原始的英特尔库,您需要在使用此代码之前自己进行尽职调查

http://21cma.bao.ac.cn/software/21cma/intel/ipp-5.1.1.005/

请注意,要在现代 Ubuntu 中使用这个旧版本的 IPP,您可能需要获取它所依赖的其他库的旧版本(要求在发行说明中列出),或者甚至只是在 chroot 下运行它至少一个受支持的 Linux 发行版来测试它是否能解决您的问题。

【讨论】:

感谢您的快速回复。免责声明指出。替代解决方案是否可能是找到引用 IPP 5.1 的程序部分并将其简单地“更改”为 6.1,或者这些库是否有很大不同?在 C++ 源代码、头文件或 makefile 中? 这可能是可能的,恐怕我没有足够的知识来评论API更改的程度。但是,如果您从 6.1 的源代码编译并且仍然依赖于 6.1 中未包含的 libppi,则让我相信树中的某些组件不是完全从源代码构建的,而是针对不同的版本。您可能想使用 ldd 进行挖掘,以查看对 libppi.so.5.1 的依赖项是来自您的主应用程序还是来自它链接的库之一。还要搜索您的 make 文件以获取对 libppi 的引用,看看是否找到参考

以上是关于英特尔性能原语 (IPP) 运行时错误的主要内容,如果未能解决你的问题,请参考以下文章

英特尔 IPP 库要求

结合英特尔 IPP 和 TBB

OpenCV 3.0 - 错误:(-215) scn == 3 || scn == 4 在函数 ipp_cvtColor

为啥此代码段错误(在分配期间)与 pgi 而不是英特尔?

英特尔 DAAL python 错误

运行 catkin_make 时调用“make -j4 -l4”失败错误