2015-12-09 1 views
-1

У меня есть (xxx.so) файл общей библиотеки и его основанный на powerpc linux. теперь я хочу использовать его в нашем проекте, но сначала нам нужно его преобразовать в общую библиотеку X86 или X64 для pc linux. Кто-нибудь может мне помочь? Является ли это возможным?Как я могу конвертировать общую библиотеку Linux (на основе PowerPC) на X86 или X64 Linux?

+3

Вы не можете преобразовать предварительно скомпилированный двоичный файл. Предполагая, что источник не имеет какого-либо зависимого от платформы кода или имеет поддержку платформы для x86, вам необходимо перекомпилировать библиотеку из исходного кода с помощью целевого компилятора x86. – kaylum

+0

Вы можете попробовать [декомпилировать] (http://stackoverflow.com/questions/2306972/is-there-any-way-to-decompile-linux-so) и перекомпилировать полученный исходный код. – orkoden

+0

Найдите выпуск x64 или загрузите исходный код и выполните компиляцию на вашей машине x64. –

ответ

1

Вы не можете: бинарный файл, полученный в результате компиляции программы на C/C++, скомпилирован для специфическихInstruction Set Architecture. Поскольку две платформы имеют разные наборы инструкций, вы не можете преобразовать библиотеку архитектуры в другую. Поэтому вам необходимо перекомпилировать библиотеку.

1

Прежде всего я бы сказал, что если вы пытаетесь использовать функции из библиотеки в одном Linux-приложении, то есть очень хороший шанс, что библиотека доступна (где-то) для вашей целевой машины. Скорее всего, исходный код должен быть доступен.

Если библиотека специфична для tat-версии Linux, вы не должны использовать ее для кросс-платформенной работы.

Это говорит, в принципе, вы можете:

  • Запуск версии PowerPC Линукса на платформе x86 или x64 с использованием VM.
  • Попробуйте предложенный вам маршрут декомпиляции-перекомпиляции.
  • Напиши свою собственную эквивалентную библиотеку для цели.
  • Посмотрите, если кто-то написал приложение для бинарного перевода для этой цели.

Но если библиотека, которую вы хотите использовать, просто недоступна для системы, на которую вы нацеливаетесь, тогда вы просто не должны пытаться ее использовать. Практика суицидального программирования.