你好博主 我在用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 与编译器不兼容 导致的。建议你按以下顺序排查:
- 确认 OpenCV 路径正确
- 检查 CMake 配置项
- 清理并重新生成 Makefile
- 确保编译器和 OpenCV 一致
- 查看具体的编译错误信息
如果你能提供更详细的错误日志(如完整的
mingw32-make输出),我可以帮你进一步定位问题!祝你顺利解决问题!如有其他疑问,欢迎继续提问。
解决 无用评论 打赏 举报