说我有 A.lib 和 B.dll (有自己的 B.lib )真的是同一件事(他们共享标题和符号)。
我需要一个应用程序来链接它们,但我只想通过 A.lib 来做到这一点。基本上,我需要链接器能够找到从 B.dll 导出的符号,而不必显式链接 B.lib 。 / p>
理想情况下,我想完全消除 A.lib ,并在 B.lib 中有一些代码,其余的在 B.dll 中
我的目标是创建一个库,该库可以直接使用与其链接的应用程序中的某些特殊命名符号,而不必强制库用户提供指向它们的指针。所述符号(主要是函数)是由工具生成的,因此它们的名称通常缺乏任何描述性值(更不用说它们的数量很多)。
答案 0 :(得分:2)
您可以将静态库项目添加到您的解决方案中,例如C.只有A.lib和B.lib作为附加依赖项,没有代码。其中运行lib.exe并将A.lib和B.lib合并到C.lib中。任何后续项目都可以链接到哪个。
嗯,只要您使用项目依赖项来确保所有内容都以正确的顺序构建,那么这应该可以正常工作。 C项目依赖于A和B,使用C.lib的所有东西都依赖于C.隐藏这样的依赖关系不是最好的做法。