26

我对 Windows 和 Linux 库的编译相当熟悉,但至于今天,当我MinGW在我的 Windows 机器上看到 OpenCV 编译后的文件被抛出时dll.a.a 我已经开始认真思考了。

这些是我\lib从 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

我的\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

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

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

4

1 回答 1

22

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

于 2013-06-12T13:31:04.057 回答