如何将.lib 导入.dll?

Posted

技术标签:

【中文标题】如何将.lib 导入.dll?【英文标题】:How to import .lib into .dll? 【发布时间】:2015-01-05 11:02:23 【问题描述】:

我正在尝试将 dll 编码为使用 C++ 的某些系统的插件。这个插件将使用另一个库,它是一个 .lib 文件,因此应该只输出一个 .dll 文件。所以我希望这个其他 .lib 文件包含在我的 dll 中。应该只有一个dll文件,其中应该包含lib文件,这样我就可以将这个dll文件作为一个文件插件包含到系统中。这可能吗?如何实现?

我正在使用 Visual C++ 2010 Express。

谢谢。

【问题讨论】:

我稍微编辑了这个问题。我想要的只是一个包含 lib 的 dll 文件。我会将该 dll 文件作为插件导入到其他系统中。我尝试将其链接,但生成的 dll 文件似乎不包含 lib。也许我做错了什么。 【参考方案1】:

不幸的是,VS 链接器没有与ld--whole-archive 等效的选项,可用于包含整个库。

最好的办法是解压缩库并链接到生成的目标文件中。您可以为此使用图书管理员(lib 工具)。要列出库的所有成员,请使用 lib /LIST。目标文件必须一一提取,使用lib /EXTRACT:member

【讨论】:

工作就像一个魅力!谢谢。

以上是关于如何将.lib 导入.dll?的主要内容,如果未能解决你的问题,请参考以下文章

如何将外部 dll 库导入 Borland C++ 6?

如何导入 libusb dll

静态库与Windows平台导入库

导入库是如何工作的? [复制]

如何将库构建为 .dll 而不是 .lib

生成读取相关连接的物理地址的lib(动态导入库)和dll(动态链接库)