c / c ++将位置相关对象转换为位置无关

时间:2015-04-20 17:34:49

标签: c++ c gcc fpic

我有一些带有调试符号的编译对象文件,但没有访问源。

有没有方法可以将此文件转换为位置无关?

据我了解'-fPIC'标志,它使所有跳跃都是相对的。我想知道是否有调试符号足以修复此跳转,因此创建一个PIC二进制文件。

如果没有,请告诉我为什么不能这样做。

1 个答案:

答案 0 :(得分:1)

我认为这个问题是平台而不是编译器特定的,因为不同的平台以不同的方式实现PIC代码。

尽管如此,我不知道任何可以使用简单工具将传统代码转换为独立代码的平台。这是必须在编译/代码生成时做出的决定。实现目标的唯一方法可能是反汇编代码并将每个绝对代码/数据引用修改为相对寻址。

简短的回答是:不,(实际上)不可能。