Linux:有没有办法编辑已编译的共享库?
具体来说,我正在搜索如何DT_SYMBOLIC flag
在已编译的二进制共享库上添加?
这就是我问这个的原因:
我们的应用程序由
- 我们自己的库(静态libXXX.a)
- 一些第 3 方库(仅二进制共享库 libYYY.so)
到目前为止,该应用程序一切正常。
现在我用共享库版本 (libXXX.so)替换了我们自己的静态* libXXX.a 库。
一切编译和链接都很好。
但是,当我现在运行应用程序时,它会启动并执行大量预期的处理 - 然后它在中途某处崩溃。gdb 回溯显示崩溃发生在某些第 3 方共享库中。
我在 SOF 上四处搜索,发现这里有一篇有趣的文章。
我指的提示是
... add the DT_SYMBOLIC flag to the dynamic section ...
尽管我怀疑它是否真的有帮助,但我认为它可能值得一试。
有什么想法可以DT_SYMBOLIC flag
在已编译/链接的共享库上添加吗?
环境:debian lenny 64bit,带有 g++ v4.2.4 和 binutils v20。
编辑:在 solaris 上有一个名为elfedit
. linux有类似的东西吗?