应用程序无法启动:VS中的OpenCV x64编译使用x86库

时间:2012-02-23 22:11:26

标签: visual-studio-2008 dll opencv 64-bit windows-7-x64

计算机:Windows 7 x64位,Visual Studio 2008

从SVN下载最新的OpenCV版本(2.3.3),并按照这些说明(http://opencv.itseez.com/doc/tutorials/introduction/windows_install/windows_install.html#windows-installation)编译适当的x86 / x64替换。

所有编译得很好的东西除了(就像我习惯的预编译版本),但每当我运行任何自己的程序,或者/ bin目录中包含的任何样本时,我都得到了以下错误:

  

应用程序无法正确启动(0xc000007b)。单击“确定”关闭应用程序

所以我下载了Dependency walker并发现了以下依赖项错误:

  • MSVCP90.dll x86(红色)
  • MSVCR90.dll x86(红色)
  • TBB.dll x86(红色)
  • IESHIMS.dll(缺失)

我没有在编译时链接正确的字大小的dll。前两个看起来像Visual Studio 9.0运行时,我听到的最后一个是Internet Explorer DLL。我已经安装了VS2008 x64可再发行组件(我需要重新编译所有内容吗?),但它仍然无效。

我搜索过互联网并发现这是一个常见的问题,但实际上并没有一个共同的解决方案。对我来说,调试和发布都会发生这种情况。

有什么想法吗?非常感谢。

1 个答案:

答案 0 :(得分:2)

我弄明白了这个问题。在生成我的解决方案时,cmake链接的TBB dll是32位二进制文​​件。我从解决方案中删除了TBB,现在我可以运行OpenCV应用程序......

如果我对cmake有足够的了解来重写它,那么可以将程序指向正确的程序。