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

有什么方法可以将此文件转换为与位置无关的文件?

据我了解,'-fPIC'标志使所有跳转都是相对的。我想知 Prop 有调试符号是否足以解决此问题并因此创建PIC二进制文件。

如果没有,请告诉我为什么无法完成此操作。

最佳答案

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

但是,我不知道有什么平台可以使用简单的工具将常规代码转换为位置无关的代码。这是必须在编译/代码生成时做出的决定。可能达到目标的唯一方法是反汇编代码并将每个绝对代码/数据引用修改为相对寻址。

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

关于c++ - c/c++将位置相关的对象转换为位置无关的,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29754606/

10-09 13:38