【问题标题】:QT / opencv : LNK1107 invalid or corrupt file : cannot read at 0x3F8 libopencv_core400.dllQT/opencv:LNK1107 无效或损坏的文件:无法在 0x3F8 libopencv_core400.dll 读取
【发布时间】:2019-04-18 16:18:53
【问题描述】:

这是我第一次使用 opencv,我发现错误可能出在哪里,我按照本教程安装了所有东西 (https://wiki.qt.io/How_to_setup_Qt_and_openCV_on_Windows)

但每当我尝试编译时,我都会收到此错误:

D:\opencv\releases\bin\libopencv_core400.dll:-1: erreur : LNK1107: 无效或损坏的文件:无法在 0x3F8 libopencv_core400.dll 读取

另一个问题是这个错误的解决方案是链接一个.lib,但opencv在我的电脑上只有.dll

.pro

    INCLUDEPATH += D:\opencv\build\include
    LIBS += D:\opencv\releases\bin\libopencv_core400.dll
    LIBS += D:\opencv\releases\bin\libopencv_calib3d400.dll
    LIBS += D:\opencv\releases\bin\libopencv_highgui400.dll
    LIBS += D:\opencv\releases\bin\libopencv_imgcodecs400.dll
    LIBS += D:\opencv\releases\bin\libopencv_imgproc400.dll
    LIBS += D:\opencv\releases\bin\libopencv_features2d400.dll

【问题讨论】:

  • dll 不是库...运行程序需要这些库。要编译你需要 lib 文件,但也许我错了
  • 您好,欢迎来到 Stack Overflow。请查看qmake variable manualLIBS 命令应该是 LIBS += -LD:/opencv/releases/bin。您可能还需要在 library dependencies 上包含 -l 标志。希望这会有所帮助!
  • @api55 是正确的,配方适用于 MinGW,并且包含拼写错误。看看here,将 dll 放在可执行文件附近并与库链接

标签: qt opencv


【解决方案1】:

这是一个较旧的线程,但也许有相同问题的任何人都可以使用它:

您只能将已构建的 OpenCV 库用于使用相同编译器的构建配置。在您的情况下:MinGW_32。 如果您尝试使用其他构建配置来构建项目,例如MSVC2017,你会得到这些错误。

选择 MinGW 32 位作为构建配置为我修复了它。

【讨论】:

    猜你喜欢
    • 2013-04-28
    • 2019-06-13
    • 2018-08-19
    • 1970-01-01
    • 1970-01-01
    • 2017-12-19
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    相关资源
    最近更新 更多