0

我在 Linux 中编写了一个用于转换声音的程序。我使用英特尔 IPP(集成性能基元)库。我添加了 ipps 和 ippcore 库:

LIBS += -L$$PWD/../../../../opt/intel/ipp/lib/intel64/ -lipps
INCLUDEPATH += $$PWD/../../../../opt/intel/ipp/lib/intel64
DEPENDPATH += $$PWD/../../../../opt/intel/ipp/lib/intel64

LIBS += -L$$PWD/../../../../opt/intel/ipp/lib/intel64/ -lippcore
INCLUDEPATH += $$PWD/../../../../opt/intel/ipp/lib/intel64
DEPENDPATH += $$PWD/../../../../opt/intel/ipp/lib/intel64

我的程序在 Qt Creator 中正确运行,但可执行文件没有运行。我已将所有英特尔 IPP 库添加到包含可执行文件的文件夹中。命令 ldd -r 的输出:

linux-vdso.so.1 =>  (0x00007fff1e9fe000)
libjack.so.0 => /usr/lib/x86_64-linux-gnu/libjack.so.0 (0x00007f577a9cf000)
libipps.so.8.2 => not found

...
...

undefined symbol: ippsMalloc_64f    
undefined symbol: ippsFIRInit64f_32f    
undefined symbol: ippsFIR64f_32f    
undefined symbol: ippsMalloc_32f    
undefined symbol: ippsFIRGetStateSize_64f   
undefined symbol: ippsMalloc_8u (./jk)
undefined symbol: ippsFIRGenBandpass_64f    
4

1 回答 1

2

你可以

  • 使用应用程序可执行文件携带 IPP 动态库(使用LD_LIBRARY_PATH指定 IPP 动态库的文件夹位置),或
  • 使用静态 IPP 库构建您的应用程序(将库文件指定为目标文件:... $IPPROOT/lib/intel64/libipps.a $IPPROOT/lib/intel64/libippcore.a等在链接器的命令行中)。
于 2015-01-15T11:09:45.317 回答