2015-04-20 2 views
0

У меня есть скомпилированный объектный файл с символами отладки, но нет доступа к источникам.c/C++ преобразовать объект, зависящий от позиции, для независимого положения

Есть ли способ конвертировать этот файл в независимое от положения?

Насколько я понимаю флаг «-fPIC», он делает все прыжки относительными. Мне интересно, достаточно ли иметь отладочные символы, чтобы исправить эти прыжки и создать двоичный файл PIC.

Если нет, скажите, пожалуйста, почему эту операцию невозможно сделать.

+1

Ваш вопрос кажется скорее компилятором, чем общим вопросом на языке C++. Пожалуйста, отметьте вопрос конкретным компилятором, таким как GCC, о котором вы спрашиваете. –

ответ

1

Я думаю, что этот вопрос скорее платформа, чем компилятор, поскольку разные платформы реализуют код PIC по-разному.

Тем не менее, я не знаю ни одной платформы, где это было бы возможно с помощью простого инструмента для преобразования обычного кода в независящий от положения код. Это решение, которое должно быть принято во время генерации компиляции/генерации кода. Вероятно, единственным способом достижения вашей цели было бы разобрать код и изменить любой абсолютный код/​​ссылку на данные в относительную адресацию.

Короткий ответ будет: нет, (практически) невозможно.