抱歉,问题标题含糊不清,我只是想确定一些事情。
静态库不会与其他静态库链接,对吧?
因此,当我编写一个 slib: A,它使用另一个:B 的功能时,我所需要提供的只是 B 到 A 的标头,而且只有这些标头,即使 A 实际上使用了 B 的功能?
是的?
只要使用 A 的 exe: X 已将 B.lib 指定为链接器输入吗?
因此,在链接时,链接器获取 A.lib,它基本上只知道 B 的函数在其代码中的某处被调用,并以某种方式填充 B.lib 中的信息,使 A.lib 在 X 获取之前变得“完整”与现在工作的部分有联系吗?
这些问题背后的动机是摆脱一些链接器警告 4006 和丢弃的双重定义,我认为这应该可以解决问题,如果这实际上是一种有效的方法的话。
是的,你说得非常正确。如果不解析这些依赖关系,则无法创建依赖于静态库的可执行文件(和 DLL),但包含对其他静态库的依赖关系的静态库不需要解析这些依赖关系在静态库创建时。事实上,创建静态库的过程根本不涉及链接器。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)