Ask Your Question

which mingw compiler is used to create the pre-build libs in 2.4.3 release

asked 2012-11-29 07:49:08 -0500

ollydbg23 gravatar image

updated 2012-11-29 20:59:17 -0500

Hi, I found that the OpenCV-2.4.3.exe file is quite huge, if I unzip it, it will takes larger then 3G Bytes. So, I just extract the pre-build libs for mingw (x86) and the include folder.

Now, here comes a question: I use the dependency walkers to check the files under: OpenCV-2.4.3.exe\opencv\build\x86\mingw\bin\, it looks like those dlls was depend on some dlls like: LIBGCC_S_DW2-1.DLL and LIBSTDC++-6.DLL. So, where does those dlls come from. I mean: which mingw compiler suite was used to build the mingw libs.

Currently, there are a lot of mingw suites in the world, TDM-GCC 4.6.x? official-mingw 4.6.x or official-mingw-4.7.x? Some compilers were DW2 and others were SJLJ exception module.

I can't find any documents about this, thanks.(also, I would like to see the build log(options passed to the gcc)

Here is my test app code:

#include <stdio.h>
#include "opencv2/core/core.hpp"
#include "opencv2/imgproc/types_c.h"

using namespace cv;

int main()
    printf("Hello world!\n");
    Mat x = Mat(4, 4, CV_32S);

    return 0;

Also, the bt of the crash:

    Program received signal SIGSEGV, Segmentation fault.
In libstdc++-6!_ZN9__gnu_cxx18__exchange_and_addEPVii () (E:\code\gcc\MinGW\bin\libstdc++-6.dll)

[debug]> bt 30
[debug]#0  0x6fc5b94e in libstdc++-6!_ZN9__gnu_cxx18__exchange_and_addEPVii () from E:\code\gcc\MinGW\bin\libstdc++-6.dll
[debug]#1  0x6fc58bbc in libstdc++-6!_ZN9__gnu_cxx12__atomic_addEPVii () from E:\code\gcc\MinGW\bin\libstdc++-6.dll
[debug]#2  0x6fc60c76 in libstdc++-6!_ZN9__gnu_cxx9free_list8_M_clearEv () from E:\code\gcc\MinGW\bin\libstdc++-6.dll
[debug]#3  0x6fc89d6e in libstdc++-6!_ZNSs4_Rep10_M_refcopyEv () from E:\code\gcc\MinGW\bin\libstdc++-6.dll
[debug]#4  0x6fc89e66 in libstdc++-6!_ZNSs4_Rep7_M_grabERKSaIcES2_ () from E:\code\gcc\MinGW\bin\libstdc++-6.dll
[debug]#5  0x6fc8bf4b in libstdc++-6!_ZNSsC1ERKSs () from E:\code\gcc\MinGW\bin\libstdc++-6.dll
[debug]#6  0x61bf773e in _fu2730___ZNSs4_Rep20_S_empty_rep_storageE () from E:\code\opencv\2.4.3\mingw\bin\libopencv_core243.dll
[debug]#7  0x61bbe1cc in _fu1594___ZNSs4_Rep20_S_empty_rep_storageE () from E:\code\opencv\2.4.3\mingw\bin\libopencv_core243.dll
[debug]#8  0x0022fea0 in ?? ()
[debug]#9  0xffffffff in ?? ()
[debug]#10 0x00000000 in ?? ()
[debug]> quit
edit retag flag offensive close merge delete

1 answer

Sort by ยป oldest newest most voted

answered 2012-12-03 15:20:25 -0500

AlexanderShishkov gravatar image
edit flag offensive delete link more


Hi, Alexander Shishkov, thank you for the answer. (though my reply is a bit late, but still thanks for the clarification) Now, I see there are 2.4.4 opencv release. So do they use the same mingw compiler suite as 2.4.3? I mean: For x64, you use mingw-w64 gcc 4.6.3 ( I guess dw2 version, but I haven't tried) For x86, you use mingw from official mingw site, gcc 4.6.1 dw2 version.

Am I right?

Btw: I strongly suggest that you need to tell the user what the gcc suite to build those prebuild libraries. I think those information should be put in a text like "readme.txt" Thanks.

ollydbg23 gravatar imageollydbg23 ( 2013-03-19 01:56:40 -0500 )edit

Thanks for the comment. Yes, we used the same versions of MinGW compilers. It is interesting suggestion, we would try to add information about compilers version to our releases in the near future.

AlexanderShishkov gravatar imageAlexanderShishkov ( 2013-03-29 04:51:07 -0500 )edit

Question Tools

1 follower


Asked: 2012-11-29 07:49:08 -0500

Seen: 1,897 times

Last updated: Dec 03 '12