使用静态库构建共享库

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

假设我有一个源代码,并将其编译为静态库,所以我有一个.lib文件。让我们称之为 first.lib

然后我有其他源代码,它调用前面代码中的函数。我将此代码构建为共享库,并将first.lib作为链接器的输入。现在我有一个 second.lib, secondary.dll.

到目前为止,一切顺利,一切正常。 但我想创建一个 EXE 应用程序,它也使用 secondary.dll 和first.lib。在构建应用程序时,我链接第二个.dll 并将第一个.lib 作为链接器的输入。

我的应用程序是否包含两次first.lib 的内容?就我而言,似乎确实如此。

c++ windows dll shared-libraries static-libraries
1个回答
1
投票

我的应用程序是否包含两次first.lib 的内容?

答案是“有点”。

当您链接静态库时,您不会将所有库包含在 DLL 或可执行文件中,而只会包含您实际使用的部分。

因此,静态库的一部分位于 DLL 中,库的一部分位于可执行文件中,并且库的一部分可能同时存在于两者中。

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