【问题标题】:Weird linker error linking to opencv... "LNK1107: invalid or corrupt file: cannot read at 0x2E8"链接到 opencv 的奇怪链接器错误...“LNK1107:无效或损坏的文件:无法在 0x2E8 读取”
【发布时间】:2012-03-11 17:15:06
【问题描述】:

这个 OpenCV 构建几天前对我有用。我正在尝试运行 OpenCV 示例中给出的示例 grabcut.cpp 文件,因此我建立了一个快速项目并引入了 cpp 文件。然后,我设置了所有标准配置并在构建时遇到此错误。

error LNK1107: invalid or corrupt file: cannot read at 0x2E8   
opencv_calib3d231.dll

这是什么意思?

【问题讨论】:

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


【解决方案1】:

如果我不得不猜测(部分基于the documentation of that error),我会说您正在尝试直接链接到 DLL。

您可能希望链接到其对应的 .lib 文件。

【讨论】:

  • 我觉得我以前总是链接到 DLL... 这不正常吗?
  • 取决于编译器;例如,MinGW 似乎能够直接链接到 DLL。
  • 嗯,我不知道 MinGW。也许你是对的。它可能会做一些类似于使用 Visual Studio 的工具生成 .def 并因此从 DLL 生成 .lib 的事情。但是(除非有人可以告诉我其他情况)我认为 Visual Studio 不允许直接链接到 DLL。您要么必须使用 .lib,要么在代码中动态加载 DLL。
  • 确保你链接的是.lib文件而不是.dll
  • 这种确切错误的另一个常见情况是意外丢失-o 标志,从而错误地将二进制文件指定为源文件。
猜你喜欢
  • 1970-01-01
  • 2013-04-28
  • 2019-06-13
  • 1970-01-01
  • 2019-11-11
  • 1970-01-01
  • 2017-12-19
  • 1970-01-01
相关资源
最近更新 更多