Quantcast

Error compiling OpenCV with MinGW (and Qt)

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Error compiling OpenCV with MinGW (and Qt)

nessup
Hello. I'm trying to compile OpenCV win32 DLLs for use by a Qt application. I
figured the best way to go about doing so was to use the MinGW compiler
provided by the Qt SDK. Compilation was successful up to about 70% in, when
I started getting these linker errors:

Linking CXX shared library ..\..\bin\libhighgui210.dll
Creating library file: ..\..\lib\libhighgui210.dll.a
C:\OpenCV-2.1.0\src\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):vid
eoInput.cpp:(.text+0xee): undefined reference to `__gxx_personality_sj0'
C:\OpenCV-2.1.0\src\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):vid
eoInput.cpp:(.text+0x104): undefined reference to `_Unwind_SjLj_Register'
C:\OpenCV-2.1.0\src\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):vid
eoInput.cpp:(.text+0x2a6): undefined reference to `_Unwind_SjLj_Unregister'
C:\OpenCV-2.1.0\src\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):vid
eoInput.cpp:(.text+0x2d4): undefined reference to `_Unwind_SjLj_Resume'
C:\OpenCV-2.1.0\src\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):vid
eoInput.cpp:(.text+0x2fe): undefined reference to `__gxx_personality_sj0'
C:\OpenCV-2.1.0\src\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):vid
eoInput.cpp:(.text+0x314): undefined reference to `_Unwind_SjLj_Register'
C:\OpenCV-2.1.0\src\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):vid
eoInput.cpp:(.text+0x4b6): undefined reference to `_Unwind_SjLj_Unregister'
C:\OpenCV-2.1.0\src\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):vid
eoInput.cpp:(.text+0x4e4): undefined reference to `_Unwind_SjLj_Resume'
C:\OpenCV-2.1.0\src\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):vid
eoInput.cpp:(.text+0x1b41): undefined reference to `__gxx_personality_sj0'
C:\OpenCV-2.1.0\src\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):vid
eoInput.cpp:(.text+0x1b5a): undefined reference to `_Unwind_SjLj_Register'
C:\OpenCV-2.1.0\src\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):vid
eoInput.cpp:(.text+0x1bb4): undefined reference to `_Unwind_SjLj_Unregister'
C:\OpenCV-2.1.0\src\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):vid
eoInput.cpp:(.text+0x1c03): undefined reference to `_Unwind_SjLj_Resume'
C:\OpenCV-2.1.0\src\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):vid
eoInput.cpp:(.text+0x1c88): undefined reference to `__gxx_personality_sj0'
C:\OpenCV-2.1.0\src\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):vid
eoInput.cpp:(.text+0x1ca7): undefined reference to `_Unwind_SjLj_Register'
C:\OpenCV-2.1.0\src\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):vid
eoInput.cpp:(.text+0x2265): undefined reference to `_Unwind_SjLj_Unregister'
C:\OpenCV-2.1.0\src\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):vid
eoInput.cpp:(.text+0x228d): undefined reference to `_Unwind_SjLj_Resume'
C:\OpenCV-2.1.0\src\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):vid
eoInput.cpp:(.text+0x2318): undefined reference to `__gxx_personality_sj0'
C:\OpenCV-2.1.0\src\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):vid
eoInput.cpp:(.text+0x2337): undefined reference to `_Unwind_SjLj_Register'
C:\OpenCV-2.1.0\src\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):vid
eoInput.cpp:(.text+0x28f5): undefined reference to `_Unwind_SjLj_Unregister'
C:\OpenCV-2.1.0\src\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):vid
eoInput.cpp:(.text+0x291d): undefined reference to `_Unwind_SjLj_Resume'
C:\OpenCV-2.1.0\src\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):vid
eoInput.cpp:(.text+0x38a0): undefined reference to `__gxx_personality_sj0'
C:\OpenCV-2.1.0\src\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):vid
eoInput.cpp:(.text+0x38df): undefined reference to `_Unwind_SjLj_Register'
C:\OpenCV-2.1.0\src\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):vid
eoInput.cpp:(.text+0x406b): undefined reference to `_Unwind_SjLj_Unregister'
C:\OpenCV-2.1.0\src\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):vid
eoInput.cpp:(.text+0x40a3): undefined reference to `_Unwind_SjLj_Unregister'
C:\OpenCV-2.1.0\src\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):vid
eoInput.cpp:(.text+0x4211): undefined reference to `_Unwind_SjLj_Unregister'
C:\OpenCV-2.1.0\src\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):vid
eoInput.cpp:(.text+0x42ec): undefined reference to `_Unwind_SjLj_Resume'
C:\OpenCV-2.1.0\src\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):vid
eoInput.cpp:(.text+0x6cf8): undefined reference to `__gxx_personality_sj0'
C:\OpenCV-2.1.0\src\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):vid
eoInput.cpp:(.text+0x6d17): undefined reference to `_Unwind_SjLj_Register'
C:\OpenCV-2.1.0\src\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):vid
eoInput.cpp:(.text+0x6e1e): undefined reference to `_Unwind_SjLj_Unregister'
C:\OpenCV-2.1.0\src\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):vid
eoInput.cpp:(.text+0x6e3e): undefined reference to `_Unwind_SjLj_Unregister'
C:\OpenCV-2.1.0\src\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):vid
eoInput.cpp:(.text+0x7002): undefined reference to `_Unwind_SjLj_Resume'
C:\OpenCV-2.1.0\src\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):vid
eoInput.cpp:(.text+0x70b4): undefined reference to `__gxx_personality_sj0'
C:\OpenCV-2.1.0\src\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):vid
eoInput.cpp:(.text+0x70cd): undefined reference to `_Unwind_SjLj_Register'
C:\OpenCV-2.1.0\src\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):vid
eoInput.cpp:(.text+0x7111): undefined reference to `_Unwind_SjLj_Unregister'
C:\OpenCV-2.1.0\src\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):vid
eoInput.cpp:(.text+0x742e): undefined reference to `_Unwind_SjLj_Unregister'
C:\OpenCV-2.1.0\src\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):vid
eoInput.cpp:(.text+0x7501): undefined reference to `_Unwind_SjLj_Resume'
collect2: ld returned 1 exit status
mingw32-make[2]: *** [bin/libhighgui210.dll] Error 1
mingw32-make[1]: *** [src/highgui/CMakeFiles/highgui.dir/all] Error 2
mingw32-make: *** [all] Error 2

I've read elsewhere that this has to do with the version of the GCC compiler
being used to make the DLLs -- specifically that the newer versions of GCC
after 4.x don't compile properly. The thing is, I don't know which version
does work. Should I try downgrading my install of GCC? Or is there another
way to deal with this?

Thanks,
--Dany.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Error compiling OpenCV with MinGW (and Qt)

crtwardy



Instead of downgrading your gcc, get a copy of libvideoInput.a that was compiled with 4.x.  See Edoardo Bianco's post #71043, and the one the preceded it in the thread.

http://tech.groups.yahoo.com/group/OpenCV/message/71043

As linked there, it's also discussed on PyOpenCV, http://code.google.com/p/pyopencv/.


-crt

--- In [hidden email], nessup <nessup@...> wrote:
> I started getting these linker errors:
>
> C:\OpenCV-2.1.0\src\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):videoInput.cpp:(.text+0xee): undefined reference to `__gxx_personality_sj0'
> C:\OpenCV-2.1.0\src\highgui\..\..\3rdparty\lib/libvideoInput.a(videoInput.o):videoInput.cpp:(.text+0x104): undefined reference to `_Unwind_SjLj_Register'


Loading...