软件环境:QT 5.8.0

                CMake 3.7.2

                OpenCV 4.9.0

软件版本问题不大,环境对应上就好。

一、CMake GUI阶段

1、CMake 报错 %TSD-Header-###%,且带有中文乱码

%tsd-header-###%0c锟絶锟斤拷

这一步的问题会在CMake第一次config 就出现,没有WITH*,下面图的内容都是没有的

原因:电脑文件被加密,CMake读取的信息有问题

解决方法: 解密整个文件夹  或者 换个电脑

2.FFmpeg缺失的问题

这个问题可以参考这位老哥:

解决CMake编译opencv时ffmpeg为NO问题_opencv编译ffmpeg为no-CSDN博客

刚好我跟他的版本一样,直接使用了他的生成.Cache文件夹

遇到这个报错,如果运气好重新configure 也是可以通过的,但是VIDEO I/O 的 FFMPEG这个功能支持熟悉会是 NO(不支持),后续使用ffmpeg会报错,或者更离谱的异常;如果不需要视频处理,FFMPEG是可以考虑直接跳过下一步的

我也是复制老哥的文件夹之后,重新configure变成YES,

二、Windows Power shell mingw32-make阶段

1、多线程编译问题

[ 12%] Building C object 3rdparty/libwebp/CMakeFiles/libwebp.dir/src/utils/utils.c.obj
[ 12%] Linking C static library ..\lib\liblibwebp.a
[ 12%] Built target libwebp
Makefile:159: recipe for target 'all' failed
mingw32-make: *** [all] Error 2

原因不详,这种突然说recipe for target 'all' failed,没有其他error 的一般都是多线程编译导致的问题

解决方案:换成更少的线程编译 

2、mutex.h互斥锁的头文件编译报错

/05_Tools/03_OpenCV/opencv/sources/3rdparty/protobuf/src/google/protobuf/stubs/mutex.h:98:7: note:   'google::protobuf::internal::CallOnceInitializedMutex<std::mutex>' has a non-trivial destructor
3rdparty\protobuf\CMakeFiles\libprotobuf.dir\build.make:87: recipe for target '3rdparty/protobuf/CMakeFiles/libprotobuf.dir/src/google/protobuf/arena.cc.obj' failed
mingw32-make[2]: *** [3rdparty/protobuf/CMakeFiles/libprotobuf.dir/src/google/protobuf/arena.cc.obj] Error 1
CMakeFiles\Makefile2:789: recipe for target '3rdparty/protobuf/CMakeFiles/libprotobuf.dir/all' failed
mingw32-make[1]: *** [3rdparty/protobuf/CMakeFiles/libprotobuf.dir/all] Error 2
Makefile:159: recipe for target 'all' failed
mingw32-make: *** [all] Error 2

原因不详

解决方法:按照路径,找到mutex。h源码 如图注释掉

                再重新configure   与 genarate

后话:

闲下来又用qt 5.13.0的版本试了下,编译出来的opencv库,

给我报了错,undefined reference to `cv::imread(std::__cxx11::basic_string<char, std::char_trtraits<char>, std::allocator<char> > const&, int)'

想起来用64bit建的项目;

Mingw 32 是可以直接用的。需要自取

链接:https://pan.baidu.com/s/1m03IxxJPeWp_F68GcmEQjA?pwd=1234 
提取码:1234

1、把\install\x64\mingw\bin配进环境变量;

2、qt pro文件直接加 头文件路径 跟 .a库路径:

INCLUDEPATH += D:\01_Tool\04_Qt_OpenCV\install\include
LIBS += D:\01_Tool\04_Qt_OpenCV\install\x64\mingw\lib\libopencv_*.a

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐