我对Windows和Linux库的编译相当熟悉,但是就今天而言,当我看到Windows计算机上的MinGW在OpenCV编译后丢弃了dll.a.a文件时,我开始认真考虑。

这些是我的OpenCV编译输出的\lib:

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

和我的\bin输出:
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

(我显然有更多的二进制文件,但是在这里列出它没有意义)

有人可以告诉我这些是否是我可以链接的常规静态库吗?我应该如何反对他们?

最佳答案

.a文件是静态库。 .dll.a文件是仅帮助您链接到dll(这是一个动态库)的文件。我的猜测是您的dll包含了所有内容,并且dll.a文件仅指向该dll。

10-07 16:28
查看更多