我有两个动态加载库lib_smtp.so和libpop.so等。 两者都有一个名为
现在由于某种原因,我需要将所有动态链接和可加载库编译成静态库并包含在可执行文件中。 这样做时,在链接静态库期间会出现“符号重复定义”错误。
我很好奇在动态链接期间连接了所有三个库的情况下,链接器如何解决重复的符号?
如果不能,是否有一种方法可以像链接器在动态链接中那样静态地完成相同符号的所有静态库添加到可执行文件中,而没有任何冲突? 如果不行,为什么静态链接库的过程不同呢?
protocol
的全局变量,分别初始化为"SMTP"和"POP"。 我还有另一个静态库libhttp.a,其中protocol
初始化为“HTTP”。现在由于某种原因,我需要将所有动态链接和可加载库编译成静态库并包含在可执行文件中。 这样做时,在链接静态库期间会出现“符号重复定义”错误。
我很好奇在动态链接期间连接了所有三个库的情况下,链接器如何解决重复的符号?
如果不能,是否有一种方法可以像链接器在动态链接中那样静态地完成相同符号的所有静态库添加到可执行文件中,而没有任何冲突? 如果不行,为什么静态链接库的过程不同呢?