64位系统执行mingw32-make遇架构兼容错误,求QT+OpenCV集成方案
解决OpenCV编译时架构不兼容错误
错误根源
编译生成的vs_version.rc.obj是32位(i386)架构,但你使用的是64位MinGW工具链,目标是生成64位程序,链接器因此报错架构不匹配。大概率是CMake配置阶段未正确指定64位目标,或是系统PATH中混入了32位资源编译器(rc.exe)。
解决步骤
1. 清理旧编译残留
删除openCV/opencv/release目录下所有文件,彻底清除旧的32位配置和编译产物。
2. 重新用CMake配置64位编译环境
打开CMake-GUI,按以下流程操作:
- 指定OpenCV源码目录和新的编译目录(建议新建
release_x64,避免和旧目录混淆) - 点击
Configure,选择MinGW Makefiles,再勾选Specify native compilers C编译器选择MinGW64下的gcc.exe(示例路径:D:/Qt/Tools/mingw1120_64/bin/gcc.exe)C++编译器选择同目录下的g++.exe- 点击
Finish启动配置,若出现红色选项,重复点击Configure直到红色消失 - 确认
CMAKE_BUILD_TYPE设为Release,CMAKE_SYSTEM_PROCESSOR设为x86_64 - 点击
Generate生成适配64位的Makefile
3. 修正系统PATH变量
检查系统环境变量PATH,只保留64位MinGW的bin目录(如D:/Qt/Tools/mingw1120_64/bin),删除所有32位MinGW或其他工具链的路径,防止调用错误版本的资源编译器。
4. 执行编译命令
进入新的编译目录,直接执行mingw32-make(MinGW64的编译命令确实是这个名称,无需找替代),可加-jN参数加速编译(N为CPU核心数,比如-j8)。
5. 集成到Qt项目
编译完成后,在Qt项目的.pro文件中添加OpenCV相关配置:
INCLUDEPATH += 你的OpenCV编译目录/include LIBS += -L你的OpenCV编译目录/bin \ -lopencv_core470 \ -lopencv_imgproc470 \ -lopencv_highgui470 \ # 根据需求添加其他OpenCV库
最后将编译生成的bin目录下的DLL文件复制到Qt项目的运行目录中。
内容的提问来源于stack exchange,提问作者Leme
相关产品推荐
相关产品推荐

