K9421 2026-04-29 11:28 采纳率: 0%
浏览 3

Qt&OpenCV配置时出现的问题

你好博主 我在用qt配置opencv时遇到你帖子说的问题"mingw32-make: *** [Makefile:165: all] Error 2" ,但是我按照你的方式“cmake界面按钮: add Entry —>>> BOOL —>>> OPENCV_VS_VERSIONINFO_SKIP 打钩”之后还是不行 请问应该如何解决呀 在线等急

  • 写回答

1条回答 默认 最新

  • 檀越@新空间 2026-04-29 11:29
    关注

    上午好☀️☀️☀️️
    本答案参考通义千问

    你好!感谢你的提问。你提到在使用 Qt + OpenCV 配置过程中遇到了错误:

    mingw32-make: *** [Makefile:165: all] Error 2
    

    并且按照我之前的建议,尝试了 “cmake界面按钮: add Entry —>>> BOOL —>>> OPENCV_VS_VERSIONINFO_SKIP 打钩”,但问题依旧存在。


    🔍 一、问题分析

    这个错误通常表示 CMake 编译过程中出现了某些配置或依赖问题,导致 make 无法完成构建。可能的原因包括:

    • CMake 配置不正确(如 OpenCV 路径不对)
    • MinGW 编译器与 OpenCV 版本不兼容
    • 环境变量未设置好
    • 使用了不兼容的编译器(如 MSVC vs MinGW)
    • 项目中缺少必要的依赖库

    ✅ 二、解决方案(详细步骤)

    1. 确认 OpenCV 安装路径是否正确

    确保你在 CMake 中指定的 OpenCV 路径是正确的,例如:

    OpenCV_DIR = D:\opencv\build\x86\vc15
    

    或者根据你安装的版本进行修改。

    重点提示: 如果你使用的是 MinGW,请确保 OpenCV 是用 MinGW 编译的,否则可能会出现链接错误。


    2. 检查 CMake 配置项

    添加以下配置项(如果还没有添加):

    | 名称 | 值 | |------|----| | OPENCV_VS_VERSIONINFO_SKIP | ON(跳过版本信息生成) | | BUILD_opencv_python | OFF(如果你不需要 Python 支持) | | BUILD_SHARED_LIBS | OFF(如果你需要静态库) | | WITH_TBB | OFF(如果不需要 TBB) |

    重点提示: 在 CMake GUI 中点击 Configure 后,再点击 Generate,确保生成的 Makefile 正确。


    3. 清理并重新生成 Makefile

    有时候旧的 Makefile 会残留一些错误配置,可以尝试:

    rm -rf build/
    mkdir build && cd build
    cmake ..
    

    4. 检查 MinGW 和 Qt 的兼容性

    如果你使用的是 Qt Creator,请确保:

    • 你使用的 编译器MinGW(不是 MSVC)
    • 你的 Qt 项目配置中选择的编译器与 OpenCV 编译时使用的编译器一致

    重点提示: 如果你用的是 MSVC 编译 OpenCV,而用 MinGW 编译 Qt 项目,会出现 DLL 不兼容 的问题。


    5. 修改 CMakeLists.txt(可选)

    如果你自己写 CMakeLists.txt,请确保包含如下内容:

    find_package(OpenCV REQUIRED)
    include_directories(${OpenCV_INCLUDE_DIRS})
    link_directories(${OpenCV_LIBRARY_DIRS})
    add_executable(your_app main.cpp)
    target_link_libraries(your_app ${OpenCV_LIBS})
    

    6. 查看具体的编译错误日志

    运行命令:

    mingw32-make -j4
    

    然后查看输出中的具体错误信息,比如:

    • 某个文件找不到
    • 链接失败
    • 缺少某个库

    重点提示: 错误信息往往能直接指出问题所在。


    🧪 三、示例:CMake 配置截图参考

    你可以参考以下配置项(假设你使用的是 OpenCV 4.5.0 + MinGW):

    OpenCV_DIR = D:\opencv\build\x86\vc15
    OPENCV_VS_VERSIONINFO_SKIP = ON
    BUILD_opencv_python = OFF
    BUILD_SHARED_LIBS = OFF
    WITH_TBB = OFF
    

    🛠 四、代码示例(可选)

    如果你使用的是 Qt 项目,可以在 .pro 文件中添加如下内容:

    INCLUDEPATH += D:/opencv/include
    LIBS += -LD:/opencv/build/x86/vc15/lib -lopencv_core -lopencv_imgproc -lopencv_highgui
    

    注意: 路径需根据你自己的 OpenCV 安装位置修改。


    🚨 五、常见错误及解决方式

    | 错误信息 | 解决方式 | |----------|----------| | undefined reference to cv::... | 检查 OpenCV 是否正确链接 | | no such file or directory | 检查 OpenCV 路径是否正确 | | LNK2019 | 未找到符号,可能是 DLL 或 LIB 文件缺失 | | mingw32-make: *** [Makefile:165: all] Error 2 | 清理 CMake 缓存,重新生成 Makefile |


    ✅ 六、总结

    你遇到的问题很可能是由于 CMake 配置不完整OpenCV 与编译器不兼容 导致的。建议你按以下顺序排查:

    1. 确认 OpenCV 路径正确
    2. 检查 CMake 配置项
    3. 清理并重新生成 Makefile
    4. 确保编译器和 OpenCV 一致
    5. 查看具体的编译错误信息

    如果你能提供更详细的错误日志(如完整的 mingw32-make 输出),我可以帮你进一步定位问题!

    祝你顺利解决问题!如有其他疑问,欢迎继续提问。

    评论

报告相同问题?

问题事件

  • 创建了问题 4月29日