使用静态库构建共享库

时间:2017-05-23 17:24:32

标签: c++ windows dll shared lib

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

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

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

我的应用程序是否包含first.lib的内容两次?在我的情况下,似乎确实如此。

1 个答案:

答案 0 :(得分:1)

  

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

答案是"有点"。

链接静态库时,不包括DLL或可执行文件中的所有库,只包括实际使用的部分。

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