0

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

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

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

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

4

1 回答 1

1

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

答案是“有点”。

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

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

于 2017-05-23T17:29:37.000 回答