TLDR:将OpenCV与QT MingW链接,使应用程序在调试中崩溃,而不是发布。
我试图在一个基于Qt的大型多操作系统项目中使用OpenCV。我很容易就为Mac和Linux构建了OpenCV,但是我很难在Windows上使用它。
环境:
Qt 5.12.2 MinGW
MinGW 8.1.0 64位
OpenCV基本上是4.1.0以来的所有版本
CMake 3.19
我试过什么
现在,每当我使用Qt在Debug中运行应用程序时,程序就会立即崩溃,甚至没有进入主程序。当我使用.exe时,我有以下错误:

我已经看到这可能是一个TBB问题,所以我尝试使用与MSys不同的版本,但没有成功。
我试图为构建和运行更改Qt中的路径变量,但没有成功。
我的.pri中的包含和Libs如下所示(它们都是在构建过程中找到的)
INCLUDEPATH += -I $$PWD/../../ext/OpenCV/include/opencv4
DEPENDPATH += -$$PWD/../../ext/OpenCV/include/opencv4
LIBS += -L$$PWD/../../ext/OpenCV/lib/$$OSFOLDER/$$ARCHFOLDER -lopencv_imgproc430
LIBS += -L$$PWD/../../ext/OpenCV/lib/$$OSFOLDER/$$ARCHFOLDER -lopencv_core430
LIBS += -L$$PWD/../../ext/OpenCV/lib/$$OSFOLDER/$$ARCHFOLDER -lopencv_dnn430
LIBS += -L$$PWD/../../ext/OpenCV/lib/$$OSFOLDER/$$ARCHFOLDER -lopencv_imgcodecs430
LIBS += -L$$PWD/../../ext/OpenCV/lib/$$OSFOLDER/$$ARCHFOLDER -lopencv_highgui430发布于 2020-12-10 09:53:25
好了,我终于成功了!正如我在问题中所说的,当TBB版本不正确时,有时会发生此错误,下面是我所做的:
使用此存储库:https://github.com/oneapi-src/oneTBB手工构建TBB,该存储库包含基于CMake的官方存储库https://github.com/oneapi-src/oneTBB构建系统。
使用您稍后将在应用程序中使用的编译器使用所需的版本构建
- Uncheck 'BUILD\_TBB', check 'WITH\_TBB' and point to the previously built TBB libraries and include.
- Add the flags you need ( OPENCV\_ENABLE\_ALLOCATOR\_STATS=OFF for instance ) and build it.https://stackoverflow.com/questions/65219534
复制相似问题