qt - 在Windows中编译OpenCV SVN干线-highgui/libVideoInput中的错误

标签 qt opencv makefile compiler-errors cmake

我知道有关此问题有几个,但没有一个问题向我展示了如何解决我遇到的错误。

使用this guide,我已经能够使用此指南和cmake编译当前的OpenCV版本(2.2)。因此,该版本工作正常,我可以在Qt中使用它编写代码。因此,我需要启用WITH_QT并构建自己。

但不幸的是,我发现2.2版本不支持所有类型的摄像机(因为我想从720p网络摄像机中获取摄像机流)。我读过,这在最新的svn主干版本中已修复。

因此,我检查了最新的svn中继并再次运行Cmake,创建了一个新文件夹,选择了源文件,MinGW编译了指向g++。exe和qcc.exe的链接,配置并启用了“WITH_QT”并生成了必要的Makefile。

然后,我以管理员身份启动Windows Powershell,并尝试使用“mingw32-make”进行编译...但是在56%的情况下,它突然崩溃了:

[ 56%] Building CXX object modules/highgui/CMakeFiles/opencv_highgui.dir/src/grfmt_sunras.obj
[ 56%] Building CXX object modules/highgui/CMakeFiles/opencv_highgui.dir/src/grfmt_tiff.obj
Linking CXX shared library ..\..\bin\libopencv_highgui220d.dll
Creating library file: ..\..\lib\libopencv_highgui220d.dll.a
C:\workspace\opencv\OpenCV_SVN\modules\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):videoInput.cpp:(.text+0x
ee): undefined reference to `__gxx_personality_sj0'
C:\workspace\opencv\OpenCV_SVN\modules\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):videoInput.cpp:(.text+0x
104): undefined reference to `_Unwind_SjLj_Register'
C:\workspace\opencv\OpenCV_SVN\modules\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):videoInput.cpp:(.text+0x
2a6): undefined reference to `_Unwind_SjLj_Unregister'
C:\workspace\opencv\OpenCV_SVN\modules\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):videoInput.cpp:(.text+0x
2d4): undefined reference to `_Unwind_SjLj_Resume'
C:\workspace\opencv\OpenCV_SVN\modules\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):videoInput.cpp:(.text+0x
2fe): undefined reference to `__gxx_personality_sj0'
C:\workspace\opencv\OpenCV_SVN\modules\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):videoInput.cpp:(.text+0x
314): undefined reference to `_Unwind_SjLj_Register'
C:\workspace\opencv\OpenCV_SVN\modules\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):videoInput.cpp:(.text+0x
4b6): undefined reference to `_Unwind_SjLj_Unregister'
C:\workspace\opencv\OpenCV_SVN\modules\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):videoInput.cpp:(.text+0x
4e4): undefined reference to `_Unwind_SjLj_Resume'
C:\workspace\opencv\OpenCV_SVN\modules\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):videoInput.cpp:(.text+0x
1b41): undefined reference to `__gxx_personality_sj0'
C:\workspace\opencv\OpenCV_SVN\modules\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):videoInput.cpp:(.text+0x
1b5a): undefined reference to `_Unwind_SjLj_Register'
C:\workspace\opencv\OpenCV_SVN\modules\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):videoInput.cpp:(.text+0x
1bb4): undefined reference to `_Unwind_SjLj_Unregister'
C:\workspace\opencv\OpenCV_SVN\modules\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):videoInput.cpp:(.text+0x
1c03): undefined reference to `_Unwind_SjLj_Resume'
C:\workspace\opencv\OpenCV_SVN\modules\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):videoInput.cpp:(.text+0x
1c88): undefined reference to `__gxx_personality_sj0'
C:\workspace\opencv\OpenCV_SVN\modules\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):videoInput.cpp:(.text+0x
1ca7): undefined reference to `_Unwind_SjLj_Register'
C:\workspace\opencv\OpenCV_SVN\modules\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):videoInput.cpp:(.text+0x
2265): undefined reference to `_Unwind_SjLj_Unregister'
C:\workspace\opencv\OpenCV_SVN\modules\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):videoInput.cpp:(.text+0x
228d): undefined reference to `_Unwind_SjLj_Resume'
C:\workspace\opencv\OpenCV_SVN\modules\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):videoInput.cpp:(.text+0x
2318): undefined reference to `__gxx_personality_sj0'
C:\workspace\opencv\OpenCV_SVN\modules\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):videoInput.cpp:(.text+0x
2337): undefined reference to `_Unwind_SjLj_Register'
C:\workspace\opencv\OpenCV_SVN\modules\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):videoInput.cpp:(.text+0x
28f5): undefined reference to `_Unwind_SjLj_Unregister'
C:\workspace\opencv\OpenCV_SVN\modules\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):videoInput.cpp:(.text+0x
291d): undefined reference to `_Unwind_SjLj_Resume'
C:\workspace\opencv\OpenCV_SVN\modules\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):videoInput.cpp:(.text+0x
38a0): undefined reference to `__gxx_personality_sj0'
C:\workspace\opencv\OpenCV_SVN\modules\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):videoInput.cpp:(.text+0x
38df): undefined reference to `_Unwind_SjLj_Register'
C:\workspace\opencv\OpenCV_SVN\modules\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):videoInput.cpp:(.text+0x
406b): undefined reference to `_Unwind_SjLj_Unregister'
C:\workspace\opencv\OpenCV_SVN\modules\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):videoInput.cpp:(.text+0x
40a3): undefined reference to `_Unwind_SjLj_Unregister'
C:\workspace\opencv\OpenCV_SVN\modules\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):videoInput.cpp:(.text+0x
4211): undefined reference to `_Unwind_SjLj_Unregister'
C:\workspace\opencv\OpenCV_SVN\modules\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):videoInput.cpp:(.text+0x
42ec): undefined reference to `_Unwind_SjLj_Resume'
C:\workspace\opencv\OpenCV_SVN\modules\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):videoInput.cpp:(.text+0x
6cf8): undefined reference to `__gxx_personality_sj0'
C:\workspace\opencv\OpenCV_SVN\modules\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):videoInput.cpp:(.text+0x
6d17): undefined reference to `_Unwind_SjLj_Register'
C:\workspace\opencv\OpenCV_SVN\modules\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):videoInput.cpp:(.text+0x
6e1e): undefined reference to `_Unwind_SjLj_Unregister'
C:\workspace\opencv\OpenCV_SVN\modules\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):videoInput.cpp:(.text+0x
6e3e): undefined reference to `_Unwind_SjLj_Unregister'
C:\workspace\opencv\OpenCV_SVN\modules\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):videoInput.cpp:(.text+0x
7002): undefined reference to `_Unwind_SjLj_Resume'
C:\workspace\opencv\OpenCV_SVN\modules\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):videoInput.cpp:(.text+0x
70b4): undefined reference to `__gxx_personality_sj0'
C:\workspace\opencv\OpenCV_SVN\modules\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):videoInput.cpp:(.text+0x
70cd): undefined reference to `_Unwind_SjLj_Register'
C:\workspace\opencv\OpenCV_SVN\modules\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):videoInput.cpp:(.text+0x
7111): undefined reference to `_Unwind_SjLj_Unregister'
C:\workspace\opencv\OpenCV_SVN\modules\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):videoInput.cpp:(.text+0x
742e): undefined reference to `_Unwind_SjLj_Unregister'
C:\workspace\opencv\OpenCV_SVN\modules\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):videoInput.cpp:(.text+0x
7501): undefined reference to `_Unwind_SjLj_Resume'
collect2: ld returned 1 exit status
mingw32-make[2]: *** [bin/libopencv_highgui220d.dll] Error 1
mingw32-make[1]: *** [modules/highgui/CMakeFiles/opencv_highgui.dir/all] Error 2
mingw32-make: *** [all] Error 2

所以在编译libVideoInput时似乎出了点问题...
有人熟悉这个错误吗?我该如何解决?我之前需要安装特殊的东西吗?

如果有人可以帮助我,那就太好了!谢谢!

最佳答案

从理论上讲,通过与QT一起安装OpenCV,您不需要highgui库。因此,在安装OpenCV期间,应从Cmake gui中取消选择highgui。 Youtube/Web上有一些教程,展示了如何在没有highgui lib的情况下使用OpenCV和QT。祝你好运

关于qt - 在Windows中编译OpenCV SVN干线-highgui/libVideoInput中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5622879/

相关文章:

c++ - 调用 QDataStream::writeRawData 后 QDataStream 为空

c++ - 设置 Netbeans 8.0.2 以与 Qt 5.4 一起使用

c++ - OpenCV中使用C++的鼠标点击功能

python - 使用 Haar 进行人脸检测 - OpenCV python

perl - 如何使用 makefile/autoconf 制作可安装的 Perl 程序?

c++ - Qt C++ 初始化类和从类调用带有变量的方法

c++ - QWebSocket无法处理握手

python - OpenCV 中使用图像矩进行字体匹配

c++ - 虚拟内存耗尽 : Cannot allocate memory with 8 gb ram

c - 单元测试 zsh extendedglob 功能