MinGW如何创建dll.a文件?这些是什么类型的库文件?

29

我对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

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

请问这些是否是我可以链接的普通静态库?我该如何链接它们?


我在Linux系统上交叉编译Win32的libusb时也遇到了完全相同的问题。我认为.dll.a文件没有正确指向.dll文件,因此当尝试将其他构建链接到/lib目录中的文件时,链接器会产生大量未定义引用错误。 - bph
1
可能是什么是“.dll.a”文件?的重复问题。 - Kijewski
1个回答

25

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接