假设我有源代码,并将其编译为静态库,因此我有一个.lib文件。我们称之为 first.lib 。
然后我有其他源代码调用前面代码中的函数。我将此代码构建为共享库,并将first.lib作为链接器的输入。现在我有一个 second.lib,second.dll 。
到目前为止,这么好,一切正常。 但我想创建一个EXE应用程序,它也使用second.dll和first.lib。在构建应用程序时,我链接到second.dll并将first.lib作为链接器的输入。
我的应用程序是否包含first.lib的内容两次?在我的情况下,似乎确实如此。
答案 0 :(得分:1)
我的应用程序是否包含first.lib的内容两次?
答案是"有点"。
链接静态库时,不包括DLL或可执行文件中的所有库,只包括实际使用的部分。
因此,静态库的一部分位于DLL中,库的一部分位于可执行文件中,并且库中可能存在部分库。