0

假设我有A.libB.dll(带有自己的B.lib),它们实际上是同一件事(它们共享标头和符号)。

我需要一个应用程序来链接它们,但我只想通过A.lib来做到这一点。基本上,我需要链接器能够找到从 B.dll 导出的符号, 无需显式链接B.lib

理想情况下,我想完全消除A.lib并在B.lib中有一些代码,其余的在B.dll中。

编辑

我的目标是创建一个库,该库可以在与其链接的应用程序中直接使用某些特殊命名的符号,而无需强制库用户提供指向它们的指针。所述符号(主要是函数)是工具生成的,因此它们的名称通常缺乏任何描述性价值(更不用说它们的数量很多了)。

4

1 回答 1

2

您可以将静态库项目添加到您的解决方案中,例如 C。只有 A.lib 和 B.lib 作为附加依赖项,没有代码。它运行 lib.exe 并将 A.lib 和 B.lib 合并到 C.lib 中。任何后续项目都可以链接到。

好吧,只要您使用项目依赖项来确保一切都以正确的顺序构建,这应该可以工作。C 项目依赖于 A 和 B,所有使用 C.lib 的东西都依赖于 C。像这样隐藏依赖关系并不是最好的做法。

于 2012-08-22T14:28:24.367 回答