MinGW creating dll.a files ? What type of library files are those?

Patryk picture Patryk · Dec 22, 2012 · Viewed 15.2k times · Source

I am fairly familiar with Windows and Linux libraries compilation but as for today when I have seen MinGW on my Windows machine threw out dll.a and .a files after OpenCV compilation I have started to seriously start thinking.

These are my \lib output from OpenCV compilation :

2012-12-21  23:35         1 338 420 libopencv_core243.dll.a
2012-12-21  23:33           224 994 libopencv_core_pch_dephelp.a
2012-12-21  23:38           830 820 libopencv_features2d243.dll.a

And my \bin output :

2012-12-21  23:40           356 178 libopencv_perf_core.dll.a
2012-12-21  23:45           362 702 libopencv_perf_features2d.dll.a
2012-12-21  23:35         4 086 052 libopencv_core243.dll
2012-12-21  23:38         2 102 896 libopencv_features2d243.dll

(I obviously have more binaries but there is no sense in listing it here)

Can someone tell me if these are normal static libraries that I can link against ? and how should I link against them ?

Answer

Matthew Talbert picture Matthew Talbert · Jun 12, 2013

.a files are static libraries. .dll.a files are files that just help you link against a dll (which is a dynamic library). My guess is that your dll contains everything, and the dll.a files just point to the dll.