链接到 opencv 的奇怪链接器错误...“LNK1107:无效或损坏的文件:无法在 0x2E8 读取”
Posted
技术标签:
【中文标题】链接到 opencv 的奇怪链接器错误...“LNK1107:无效或损坏的文件:无法在 0x2E8 读取”【英文标题】:Weird linker error linking to opencv... "LNK1107: invalid or corrupt file: cannot read at 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
这是什么意思?
【问题讨论】:
直系:msdn.microsoft.com/en-us/library/0h6ctxtk.aspx 【参考方案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
标志,从而错误地将二进制文件指定为源文件。以上是关于链接到 opencv 的奇怪链接器错误...“LNK1107:无效或损坏的文件:无法在 0x2E8 读取”的主要内容,如果未能解决你的问题,请参考以下文章
将 opencv 库添加到 QT 创建者并出现错误:链接器命令失败,退出代码为 1