кросс компиляция e2fsprogs для руки - PullRequest
2 голосов
/ 22 ноября 2011

Я пытаюсь кросс-компилировать пакет extundelete linux для arm. Я хочу запустить его на моем устройстве Android.

Когда я пытаюсь запустить ./configure, он говорит Can't find ext2fs library. Я обнаружил, что проблема в extundelete требует библиотеки ext2fs. Эта библиотека входит в пакет e2fsprogs.

Итак, я попытался скомпилировать e2fsprogs. Статическая компиляция невозможна, потому что, похоже, e2fsprogrs требуется --enable-elf-shlibs для правильного запуска команды make. Я построил e2fsprogrs с командой:

"./configure --host=arm-none-linux-gnueabi" CC=arm-none-linux-gnueabi-gcc --enable-elf-shlibs && make && make install && make install-libs.

Он работает правильно, и я получаю кросс-скомпилированные файлы e2fsprogs. Проблема в том, что библиотеки динамически компилируются, и я не понимаю, как передать их в расширенную кросс-компиляцию, а затем какие архивы мне нужно скопировать на мое устройство Android.

Я думаю, что возможно необходимо связать файлы .so .a, которые я получаю в кросс-компиляции e2fsprogs, но я точно не понимаю, как это сделать.

В одном из моих приключений кросс-компиляции extundelete я получил файл extundelete бинарной руки, но он был скомпилирован динамически и использует общие библиотеки. Я попытался скопировать бинарные файлы и файлы .so из e2fsprogs на мое устройство Android, но оно не работает правильно.

Кто-нибудь может помочь мне понять удивительный мир динамической кросс-компиляции?

Ответы [ 2 ]

1 голос
/ 08 июня 2016

Имейте в виду, что в более новой версии (например, 1.43) больше не используются --with-cc или --with-ldopts. --with-linker также больше не используется.

Вместо этого используйте CC = и LDFLAGS =. Пример:

./configure --host=arm-none-linux-gnueabi CC=arm-none-linux-gnueabi-gcc LDFLAGS=--static --prefox=/target/dirctory

ура!

1 голос
/ 31 октября 2012

.. / configure --host = arm-none-linux-gnueabi --with-cc = arm-none-linux-gnueabi-gcc --with-linker = arm-none-linux-gnueabi-ld - with-ldopts = - static --prefix = / tmp / target

...