raj*_*gt1 2 c linux linker build dynamic-linking
我有两个可动态加载的库lib_smtp.so和libpop.so等.它们都有一个名为的全局变量protocol,它分别被初始化为"SMTP"和"POP".我有另一个静态库libhttp.a,其中protocol初始化为"HTTP".
现在由于某种原因,我需要静态编译所有动态可链接和可加载库并包含在可执行文件中.这样做我在链接静态库时遇到错误" 符号的多重定义 ".
我很想知道链接器在动态链接期间如何解析重复的符号,其中所有三个提到的库都被链接了?
有没有什么方法可以静态地做链接器在动态链接中做的那样,即没有任何冲突将所有静态库添加到具有相同符号的可执行文件?如果没有,为什么静态链接库的过程不同.