我很疑惑,static linking不是把symbol都copy进调用的函数里了吗?为什么还会有冲突?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~]
当然不是了
你的libother.so在link的时候,才会去你指定的路径里搜索它需要引用的symbol,你用哪个版本的libyaml-cpp.a,就调用哪个了。
你需要的是dll的static invoke
【 在 xibaomo 的大作中提到: 】
: 有一个主程序,链接一个libother.so, 和一个新版的libyaml-cpp.a
: 而libother.so来自于外部,用的是一个旧版的libyaml-cpp.a
: 现在主程序跑起来有segfault,可如果yaml也用旧版,就能跑过。
: ...................
--
FROM 115.192.186.*