C++ c/c++;将位置相关对象转换为位置独立对象

C++ c/c++;将位置相关对象转换为位置独立对象,c++,c,gcc,fpic,C++,C,Gcc,Fpic,我有一些已编译的带有调试符号的对象文件,但没有访问源代码的权限 是否有任何方法将此文件转换为独立于位置的文件 据我所知,'-fPIC'标志使所有跳转都是相对的。我想知道拥有调试符号是否足以修复这个跳跃,从而创建一个PIC二进制文件 如果没有,请告诉我为什么这个操作不可能完成。我认为这个问题是平台而不是编译器特定的,因为不同的平台实现PIC代码的方式不同 然而,我不知道有哪一个平台可以用一个简单的工具将常规代码转换成位置无关的代码。这是必须在编译/代码生成时作出的决定。可能实现目标的唯一方法是分解

我有一些已编译的带有调试符号的对象文件,但没有访问源代码的权限

是否有任何方法将此文件转换为独立于位置的文件

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


如果没有,请告诉我为什么这个操作不可能完成。

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

然而,我不知道有哪一个平台可以用一个简单的工具将常规代码转换成位置无关的代码。这是必须在编译/代码生成时作出的决定。可能实现目标的唯一方法是分解代码并将每个绝对代码/数据引用修改为相对寻址


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

你的问题似乎是编译器特定的,而不是一般的C++语言问题。请用特定的编译器标记问题,例如GCC,您正在询问的编译器。