【问题标题】:Visual Studio 2012 - cannot run project in 32bit (0xc000007b error)Visual Studio 2012 - 无法以 32 位运行项目(0xc000007b 错误)
【发布时间】:2016-02-25 11:32:38
【问题描述】:

我想在 Visual Studio 2012 中使用 x86(32 位)的 OpenCV 库运行项目。我的电脑是 64 位的。

显示我的设置的一些屏幕:

当我运行应用程序 .exe 文件时 - 它以 32 位运行。 0xc000007b 代码出现奇怪的错误。

Dependency Walker 显示一些错误

平台设置为 32 位

机器目标: 也设置为 X86

还有一个可能有用的屏幕 - 它显示平台是 x64?

我不知道发生了什么,但我读到错误 0xc000007b 与一些 32 - 64 位问题有关。

[编辑] VC++ 目录:

OpenCV 库路径: 该文件夹中有很多 opencv... 文件。

[已解决]

感谢 @Miki。我必须更改 Lib 和 System PATH 以指向 Visual Studio 2012 的 VC11 编译版本。所以这对我有用 "C:\openCV\build\x86\vc11\bin"

【问题讨论】:

  • 最后一张截图没有显示平台是 x64,它显示您可以将 x64 创建为 new 平台。无论如何,Dependency Walker 会告诉您问题所在:您的应用程序引用了针对不同 CPU 类型的模块。您的应用使用的一个或多个库可能针对 x64。
  • 请在配置属性 -> VC++ 目录下显示您的库目录
  • @Miki,我编辑了帖子并添加了屏幕
  • 好的,你使用的是vc12编译器,它适用于VisualStudio 2013。由于你使用的是VisualStudio 2012,你需要使用vc11编译器。改为... \vc11\lib
  • 确保不要在发行版中使用调试库,反之亦然。另外,你是把dll放到可执行文件夹中,还是把dll文件夹添加到系统PATH中?

标签: c++ opencv visual-studio-2012


【解决方案1】:

您正在链接到 vc12 库,即为 Visual Studio 2013 编译的库。由于您使用的是 Visual Studio 2012。您应该使用 vc11 编译器。所以:

  • 将库文件夹更改为...\vc11\lib
  • 另外,请确保:
    • 您将所有需要的 dll 复制到 .exe 文件夹中,或者
    • 您将...\vc11\bin 放入系统路径

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-15
    • 2012-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多