什么是“.dll.a”文件?

问题描述 投票:0回答:2

我正在尝试使用 Windows 应用程序中的开源库,而我能找到的唯一预构建版本是一个名为“lib.dll.a”的文件

这是什么格式,我可以将其转换为普通的dll文件吗?

dll winapi
2个回答
24
投票

命名输出文件

libjvm.dll.a
将允许
gcc
将其识别为 图书馆名为
jvm
.dll.a
后缀表示(按照惯例)它是 导入库,而不是静态库(简单地命名为
libjvm.a
,再次按照惯例)。


0
投票

Linux / MacOS / Linuxen 有 .a 表示静态库,.so 表示动态库。

Windows 对于静态库有 .lib,对于动态库有(导入).lib +(匹配).dll。 import.lib 静态链接与稍后加载的 .dll 库对话所需的钩子。

为了避免混淆,Msys / MINGW 人员显然决定使用 .dll.a 来导入 .lib 文件。您应该能够将 lib.dll.a 重命名为 lib-import.lib。您也可以直接链接它们,就好像它们是 .lib 一样。已发布的 Windows FFMPEG 共享包(通过下面的 winget)包括 lib 目录中的 .a 和 .dll.a 以及 bin 目录中的可执行文件和 .dll。这是有道理的,因为在 Windows 中,.dll 在某些方面是一种可执行文件。

https://www.gyan.dev/ffmpeg/builds/

© www.soinside.com 2019 - 2024. All rights reserved.