2012-12-21 13 views
14

Jestem dość obeznany z kompilacją bibliotek Windows i Linux, ale na dzień dzisiejszy, gdy zobaczyłem MinGW na moim komputerze z systemem Windows, wyrzuciłem pliki dll.a i .a po kompilacji OpenCV, zacząłem poważnie myśleć.MinGW tworzenie plików dll.a? Jakie typy plików bibliotecznych to te?

Są to moja \lib wyjście z OpenCV kompilacji:

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 

A moja \bin wyjściowa:

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 

(ja oczywiście mieć więcej plików binarnych, ale nie ma sensu wystawianie go tutaj)

Czy ktoś może mi powiedzieć, czy są to normalne biblioteki statyczne, z którymi mogę się połączyć? i jak powinienem połączyć się z nimi?

+0

Widziałem dokładnie to samo, gdy cross budynku libusb dla win32 na pudełku Linux. nie sądzę, że .ddl.a wskazuje na .dll, ponieważ linker wskazujący na plik w katalogu/lib, gdy próbuje połączyć kolejną kompilację, powoduje stertę niezdefiniowanych błędów referencji. – bph

+0

Możliwe duplikaty z pliku [What's a .dll.a?] (http://stackoverflow.com/questions/185326/whats-a-dll-a-file) – kay

Odpowiedz

12

. Pliki są bibliotekami statycznymi. Pliki .dll.a są plikami, które pomagają ci połączyć się z biblioteką dll (która jest biblioteką dynamiczną). Domyślam się, że twoja biblioteka dll zawiera wszystko, a pliki dll.a po prostu wskazują na bibliotekę dll.

Powiązane problemy