2012-12-21 6 views
14

Sono abbastanza familiarità con Windows e Linux le librerie di compilazione ma come per oggi, quando ho visto MinGW sulla mia macchina Windows buttato fuori dll.a e .a file dopo OpenCV compilation ho cominciato a cominciare seriamente pensare.MinGW creazione di file dll.a? Che tipo di file di libreria sono quelli?

Questi sono i miei \lib uscita dalla compilazione OpenCV:

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 

E il mio \bin uscita:

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 

(io ovviamente ho più binari, ma non ha senso in vendita qui)

Qualcuno può dirmi se queste sono normali librerie statiche alle quali posso collegarmi? e come dovrei collegarmi a loro?

+0

Ho visto esattamente la stessa cosa quando ho costruito libusb per win32 su una finestra Linux. non credo che il .ddl.a stia puntando al file .dll perché il linker che punta al file nella directory/lib quando tenta di collegare un'altra build a esso risulta in un cumulo di errori di riferimento non definiti. – bph

+0

Possibile duplicato di [Che cos'è un file ".dll.a"?] (http://stackoverflow.com/questions/185326/whats-a-dll-a-file) – kay

risposta

12

.a i file sono librerie statiche. I file .dll.a sono file che ti aiutano solo a collegarti a una DLL (che è una libreria dinamica). La mia ipotesi è che la tua DLL contenga tutto e che i file dll.a puntino semplicemente alla DLL.

Problemi correlati