1

我在让 OpenCV 1.1 加载英特尔的集成性能基元 (IPP) 7.1 版时遇到了一些麻烦。

我的旧 Open CV 1.1 代码最初是在另一台旧的 Windows XP 机器上与 IPP 6.1 一起使用的。出于不重要的原因,我现在想在带有英特尔 IPP 7.1的全新 Windows 7 机器上使用它,它是Intel Composer XE 2013的一部分。英特尔的文档建议我必须更改 cxswitcher.c 中的三行以让旧的 OpenCV 代码找到新的英特尔 IPP,即我应该更新这些行:

static const char* ipp_sfx_ia32[] = { "-6.1", "-6.0", "-5.3", "-5.2", "-5.1", "", 0 };
static const char* ipp_sfx_ia64[] = { "64-6.1", "64-6.0", "64-5.3", "64-5.2", "64-5.1", "64", 0 };
static const char* ipp_sfx_em64t[] = { "em64t-6.1", "em64t-6.0", "em64t-5.3", "em64t-5.2", "em64t-5.1", "em64t", 0 };

我这样做是为了让它们现在包含版本号为“7.1”的字符串,尽可能地匹配模式:

static const char* ipp_sfx_ia32[] = { "-7.1", "-6.1", "-6.0", "-5.3", "-5.2", "-5.1", "", 0 };
static const char* ipp_sfx_ia64[] = {"64-7.1", "64-6.1", "64-6.0", "64-5.3", "64-5.2", "64-5.1", "64", 0 };
static const char* ipp_sfx_em64t[] = { "em64t-7.1","em64t-6.1", "em64t-6.0", "em64t-5.3", "em64t-5.2", "em64t-5.1", "em64t", 0 };

我已经重新编译并将以下目录添加到我的路径中:

  • C:\Program Files (x86)\Intel\Composer XE 2013\redist\intel64\ipp
  • C:\Program Files (x86)\Intel\Composer XE 2013\redist\intel32\ipp

但是,当我运行包含该cvGetModuleInfo()函数的示例代码时,我的代码无法加载 IPP dll,我得到以下输出:

     NumUploadedFunction = 0

     opencv_lib = cxcore: 1.1.0,
     add_modules =

� 请注意,我已经进行了一些其他测试。英特尔的 IPP 演示C:\Program Files (x86)\Intel\Composer XE 2013\ipp\demo\intel64只有在我将带有 DLL 的目录添加到路径后才能运行,所以这让我认为我的 PATH 设置是正确的。我还确认这个目录实际上是通过在 MSYS 提示符下运行添加到我的 MSYS 命令提示符中的路径中echo $PATH的。

我怀疑问题出在cxswitcher.c.

我还应该尝试什么?

4

0 回答 0