I decided to study OpenCV ... I compiled static libraries under MinGW, tried to run simple code from here - and got a bunch of undefined reference points:

g++ -m32 -o dist/Release/MinGW-Windows/testopencv build/Release/MinGW-Windows/TestOpenCV.o -L/D/Programms/MinGW/OpenCV/lib -lopencv_core320 -lopencv_highgui320 build/Release/MinGW-Windows/TestOpenCV.o:TestOpenCV.cpp:(.text.startup+0x40): undefined reference to `cv::imread(cv::String const&, int)' d:/Programms/MinGW/OpenCV/lib/libopencv_core320.a(persistence.cpp.obj):persistence.cpp:(.text$_ZL12icvCloseFileP13CvFileStorage+0x4b): undefined reference to `gzclose' d:/Programms/MinGW/OpenCV/lib/libopencv_core320.a(persistence.cpp.obj):persistence.cpp:(.text$_ZL6icvEofP13CvFileStorage+0x3e): undefined reference to `gzeof' d:/Programms/MinGW/OpenCV/lib/libopencv_core320.a(persistence.cpp.obj):persistence.cpp:(.text$_ZL7icvPutsP13CvFileStoragePKc+0x1f7): undefined reference to `gzputs' d:/Programms/MinGW/OpenCV/lib/libopencv_core320.a(persistence.cpp.obj):persistence.cpp:(.text$_ZL7icvGetsP13CvFileStoragePci+0xe0): undefined reference to `gzgets' d:/Programms/MinGW/OpenCV/lib/libopencv_core320.a(persistence.cpp.obj):persistence.cpp:(.text$cvOpenFileStorage+0xe4f): undefined reference to `gzrewind' d:/Programms/MinGW/OpenCV/lib/libopencv_core320.a(persistence.cpp.obj):persistence.cpp:(.text$cvOpenFileStorage+0x170e): undefined reference to `gzopen' d:/Programms/MinGW/OpenCV/lib/libopencv_highgui320.a(window_w32.cpp.obj):window_w32.cpp:(.text$_ZL15icvRemoveWindowP8CvWindow+0x11b): undefined reference to `SelectObject@8' d:/Programms/MinGW/OpenCV/lib/libopencv_highgui320.a(window_w32.cpp.obj):window_w32.cpp:(.text$_ZL15icvRemoveWindowP8CvWindow+0x126): undefined reference to `DeleteObject@4' d:/Programms/MinGW/OpenCV/lib/libopencv_highgui320.a(window_w32.cpp.obj):window_w32.cpp:(.text$_ZL15icvRemoveWindowP8CvWindow+0x138): undefined reference to `DeleteDC@4' d:/Programms/MinGW/OpenCV/lib/libopencv_highgui320.a(window_w32.cpp.obj):window_w32.cpp:(.text$_ZL16icvGetBitmapDataP8CvWindowP7tagSIZEPiPPv.isra.0+0x1e): undefined reference to `GdiFlush@0' d:/Programms/MinGW/OpenCV/lib/libopencv_highgui320.a(window_w32.cpp.obj):window_w32.cpp:(.text$_ZL16icvGetBitmapDataP8CvWindowP7tagSIZEPiPPv.isra.0+0x32): undefined reference to `GetCurrentObject@8' d:/Programms/MinGW/OpenCV/lib/libopencv_highgui320.a(window_w32.cpp.obj):window_w32.cpp:(.text$_ZL16icvGetBitmapDataP8CvWindowP7tagSIZEPiPPv.isra.0+0x6d): undefined reference to `GetObjectA@12' d:/Programms/MinGW/OpenCV/lib/libopencv_highgui320.a(window_w32.cpp.obj):window_w32.cpp:(.text$_ZL14MainWindowProcP6HWND__jjl+0x2b2): undefined reference to `CreateRectRgn@16' d:/Programms/MinGW/OpenCV/lib/libopencv_highgui320.a(window_w32.cpp.obj):window_w32.cpp:(.text$_ZL14MainWindowProcP6HWND__jjl+0x2db): undefined reference to `CreateRectRgn@16' d:/Programms/MinGW/OpenCV/lib/libopencv_highgui320.a(window_w32.cpp.obj):window_w32.cpp:(.text$_ZL14MainWindowProcP6HWND__jjl+0x304): undefined reference to `CreateRectRgn@16' d:/Programms/MinGW/OpenCV/lib/libopencv_highgui320.a(window_w32.cpp.obj):window_w32.cpp:(.text$_ZL14MainWindowProcP6HWND__jjl+0x322): undefined reference to `CombineRgn@16' d:/Programms/MinGW/OpenCV/lib/libopencv_highgui320.a(window_w32.cpp.obj):window_w32.cpp:(.text$_ZL14MainWindowProcP6HWND__jjl+0x339): undefined reference to `CombineRgn@16' d:/Programms/MinGW/OpenCV/lib/libopencv_highgui320.a(window_w32.cpp.obj):window_w32.cpp:(.text$_ZL14MainWindowProcP6HWND__jjl+0x373): undefined reference to `FillRgn@12' d:/Programms/MinGW/OpenCV/lib/libopencv_highgui320.a(window_w32.cpp.obj):window_w32.cpp:(.text$_ZL14MainWindowProcP6HWND__jjl+0x37e): undefined reference to `DeleteObject@4' d:/Programms/MinGW/OpenCV/lib/libopencv_highgui320.a(window_w32.cpp.obj):window_w32.cpp:(.text$_ZL14MainWindowProcP6HWND__jjl+0x389): undefined reference to `DeleteObject@4' d:/Programms/MinGW/OpenCV/lib/libopencv_highgui320.a(window_w32.cpp.obj):window_w32.cpp:(.text$_ZL14MainWindowProcP6HWND__jjl+0x394): undefined reference to `DeleteObject@4' d:/Programms/MinGW/OpenCV/lib/libopencv_highgui320.a(window_w32.cpp.obj):window_w32.cpp:(.text$_ZL11HighGUIProcP6HWND__jjl+0x2d9): undefined reference to `SetStretchBltMode@8' d:/Programms/MinGW/OpenCV/lib/libopencv_highgui320.a(window_w32.cpp.obj):window_w32.cpp:(.text$_ZL11HighGUIProcP6HWND__jjl+0x363): undefined reference to `StretchBlt@44' d:/Programms/MinGW/OpenCV/lib/libopencv_highgui320.a(window_w32.cpp.obj):window_w32.cpp:(.text$_ZL11HighGUIProcP6HWND__jjl+0x3e5): undefined reference to `CreateCompatibleDC@4' d:/Programms/MinGW/OpenCV/lib/libopencv_highgui320.a(window_w32.cpp.obj):window_w32.cpp:(.text$_ZL11HighGUIProcP6HWND__jjl+0x438): undefined reference to `CreateCompatibleBitmap@12' d:/Programms/MinGW/OpenCV/lib/libopencv_highgui320.a(window_w32.cpp.obj):window_w32.cpp:(.text$_ZL11HighGUIProcP6HWND__jjl+0x457): undefined reference to `SelectObject@8' d:/Programms/MinGW/OpenCV/lib/libopencv_highgui320.a(window_w32.cpp.obj):window_w32.cpp:(.text$_ZL11HighGUIProcP6HWND__jjl+0x477): undefined reference to `SetStretchBltMode@8' d:/Programms/MinGW/OpenCV/lib/libopencv_highgui320.a(window_w32.cpp.obj):window_w32.cpp:(.text$_ZL11HighGUIProcP6HWND__jjl+0x4e0): undefined reference to `SetDIBColorTable@16' d:/Programms/MinGW/OpenCV/lib/libopencv_highgui320.a(window_w32.cpp.obj):window_w32.cpp:(.text$_ZL11HighGUIProcP6HWND__jjl+0x52b): undefined reference to `BitBlt@36' d:/Programms/MinGW/OpenCV/lib/libopencv_highgui320.a(window_w32.cpp.obj):window_w32.cpp:(.text$_ZL11HighGUIProcP6HWND__jjl+0x542): undefined reference to `DeleteObject@4' d:/Programms/MinGW/OpenCV/lib/libopencv_highgui320.a(window_w32.cpp.obj):window_w32.cpp:(.text$_ZL11HighGUIProcP6HWND__jjl+0x551): undefined reference to `DeleteDC@4' d:/Programms/MinGW/OpenCV/lib/libopencv_highgui320.a(window_w32.cpp.obj):window_w32.cpp:(.text$_ZL11HighGUIProcP6HWND__jjl+0x5fc): undefined reference to `BitBlt@36' d:/Programms/MinGW/OpenCV/lib/libopencv_highgui320.a(window_w32.cpp.obj):window_w32.cpp:(.text$_ZL11HighGUIProcP6HWND__jjl+0x74f): undefined reference to `SetDIBColorTable@16' d:/Programms/MinGW/OpenCV/lib/libopencv_highgui320.a(window_w32.cpp.obj):window_w32.cpp:(.text$_ZL14showSaveDialogP8CvWindow+0x104): undefined reference to `GetSaveFileNameA@4' d:/Programms/MinGW/OpenCV/lib/libopencv_highgui320.a(window_w32.cpp.obj):window_w32.cpp:(.text$_ZL14showSaveDialogP8CvWindow+0x483): undefined reference to `cv::imwrite(cv::String const&, cv::_InputArray const&, std::vector<int, std::allocator<int> > const&)' d:/Programms/MinGW/OpenCV/lib/libopencv_highgui320.a(window_w32.cpp.obj):window_w32.cpp:(.text$cvInitSystem+0x8f): undefined reference to `GetStockObject@4' d:/Programms/MinGW/OpenCV/lib/libopencv_highgui320.a(window_w32.cpp.obj):window_w32.cpp:(.text$cvInitSystem+0xc3): undefined reference to `GetStockObject@4' d:/Programms/MinGW/OpenCV/lib/libopencv_highgui320.a(window_w32.cpp.obj):window_w32.cpp:(.text$cvNamedWindow+0x204): undefined reference to `CreateCompatibleDC@4' d:/Programms/MinGW/OpenCV/lib/libopencv_highgui320.a(window_w32.cpp.obj):window_w32.cpp:(.text$cvShowImage+0x10b): undefined reference to `SelectObject@8' d:/Programms/MinGW/OpenCV/lib/libopencv_highgui320.a(window_w32.cpp.obj):window_w32.cpp:(.text$cvShowImage+0x116): undefined reference to `DeleteObject@4' d:/Programms/MinGW/OpenCV/lib/libopencv_highgui320.a(window_w32.cpp.obj):window_w32.cpp:(.text$cvShowImage+0x1a7): undefined reference to `CreateDIBSection@24' d:/Programms/MinGW/OpenCV/lib/libopencv_highgui320.a(window_w32.cpp.obj):window_w32.cpp:(.text$cvShowImage+0x1b9): undefined reference to `SelectObject@8' d:/Programms/MinGW/OpenCV/lib/libopencv_highgui320.a(window_w32.cpp.obj):window_w32.cpp:(.text$cvShowImage+0x213): undefined reference to `cvConvertImage' d:/Programms/MinGW/OpenCV/lib/libopencv_highgui320.a(window_w32.cpp.obj):window_w32.cpp:(.text$cvShowImage+0x2a1): undefined reference to `cvConvertImage' d:/Programms/MinGW/OpenCV/lib/libopencv_highgui320.a(window_w32.cpp.obj):window_w32.cpp:(.text$cvShowImage+0x2c1): undefined reference to `cvConvertImage' d:/Programms/MinGW/OpenCV/lib/libopencv_highgui320.a(window_w32.cpp.obj):window_w32.cpp:(.text$cvShowImage+0x374): undefined reference to `cvConvertImage' collect2.exe: error: ld returned 1 exit status make.exe[2]: *** [dist/Release/MinGW-Windows/testopencv.exe] Error 1 make.exe[2]: Leaving directory `/d/Projects/TestOpenCV' make.exe[1]: *** [.build-conf] Error 2 make.exe[1]: Leaving directory `/d/Projects/TestOpenCV' make.exe": *** [.build-impl] Error 2 

Libraries: Libs It seems like static libraries ... I tried to link everything in the folder with libraries. Can I have something wrong connected or collected? What does he lack?

  • Add the following libraries when linking; libz.a (libzlib.a) , libgdi32.a , libcomdlg32.a , libopencv_imgcodecs320.a , libopencv_imgproc320.a . - Embedder
  • Even more undefined reference, all connected with opencv_imgproc320 and opencv_imgcodecs320 - Iceman
  • Since these libraries work with images, then most likely they require linking with liblibpng, liblibjpeg, etc. From the undefined reference to 'xxx' error message, it is quite possible to understand which libraries are required. In extreme cases, you can use the nm.exe utility (it comes with MinGW) and see what is exported from each specific library. - Embedder
  • Read the question to understand the reasons. - αλεχολυτ

0