Windows 正在创建dll.a文件吗?这些是什么类型的库文件?

Windows 正在创建dll.a文件吗?这些是什么类型的库文件?,windows,linker,mingw,static-libraries,static-linking,Windows,Linker,Mingw,Static Libraries,Static Linking,我对Windows和Linux库的编译相当熟悉,但到了今天,当我看到Windows机器上的MinGW抛出了dll.a和.a文件,在OpenCV编译之后,我开始认真思考 以下是我的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

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

以下是我的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文件是静态库。a文件是帮助您链接dll(动态库)的文件。我的猜测是,您的dll包含所有内容,而dll.a文件只是指向dll。

在linux设备上交叉构建win32版libusb时,我看到了完全相同的情况。我不认为.ddl.a指向.dll,因为在尝试将另一个构建链接到它时,链接器指向/lib dir中的文件会导致大量未定义的引用错误..可能重复