我有一个不透明的静态链接库(.a
文件)和一些不透明的目标文件(.o
),它们调用所述静态库中的函数。我想在静态库中添加一些函数调用的包装器。
如果它是一个动态库,我会在运行时使用LD_PRELOAD
,但由于这是静态链接的,我确信我将不得不使用编译时技术。我在想-Z muldefs
,它允许我覆盖函数调用,但我仍然需要能够在我的垫片中调用原始函数,所以我无法直接使用它。
到目前为止,我能想出的最佳解决方案是使用objcopy --redefine-sym
重命名不透明库中的函数,然后让我的shim代码按其新名称调用函数。还有更好的方法吗?
答案 0 :(得分:1)
有更好的方法吗?
不,这是你能做的最好的事情。