我有一些带有调试符号的已编译目标文件,但无法访问源代码。
有什么方法可以把这个文件转换成位置独立的吗?
据我所知,“-fPIC”标志使所有跳转都是相对的。我想知道是否有调试符号足以修复此跳转并创建一个 PIC 二进制文件。
如果不是请告诉我为什么这个操作不可能完成。
最佳答案
我认为这个问题是平台问题而不是特定于编译器的问题,因为不同的平台实现 PIC 代码的方式不同。
尽管如此,我不知道有哪个平台可以使用简单的工具将常规代码转换为与位置无关的代码。这是必须在编译/代码生成时做出的决定。可能实现您的目标的唯一方法是反汇编代码并将每个绝对代码/数据引用修改为相对寻址。
简短的回答是:不,(实际上)不可能。
关于c++ - c/c++ 将位置相关对象转换为位置无关对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29754606/