Как кросс-сборка GZIP?


Я пытаюсь построить gzip для встроенной платформы на машине Linux. Я скачал последний дистрибутив gzip из здесь . Затем make требует сначала запустить программу configure, чтобы адаптировать Makefile для конкретной цели.

Поэтому я запускаю configure и получаю несколько сообщений об ошибках. Проблема, по-видимому, заключается в сочетании нескольких вещей. Наша версия компилятора называется e-gcc, поэтому я использовал следующую строку и получил эту ошибку:
~/Projects/gzip-1.4$ ./configure CC=e-gcc
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for style of include used by make... GNU
checking for gcc... e-gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... configure: error: in `/home/xyz/Projects/gzip-1.4':
configure: error: cannot run C compiled programs.
If you meant to cross compile, use `--host'.
See `config.log' for more details.

Очевидно, c компилируется программы не могут работать, b/c это кросс-компилятор. В сообщении говорится, что я должен использовать опцию --host, но проблема в том, что у нас действительно нет определенного имени в gcc. Однако я попытался:

./configure CC=e-gcc --host=epiphany

И полученная ошибка:

configure: WARNING: If you wanted to set the --build type, don't use --host.
    If a cross compiler is detected then cross compile mode will be used.
checking for a BSD-compatible install... /usr/bin/install -c

blah blah blah

checking build system type... x86_64-unknown-linux-gnu
checking host system type... Invalid configuration `epiphany': machine `epiphany' not recognized
configure: error: /bin/bash build-aux/config.sub epiphany failed
Напоследок я попытался обмануть и настроить Хост на arm, поскольку он наиболее близок по духу к нашей архитектуре. Конфигурация пошла гораздо дальше, но в конечном итоге также потерпела неудачу со следующим сообщением:
checking for GNU libc compatible realloc... no
checking for rmdir... no
configure: error: in `/home/xyz/Projects/gzip-1.4':
configure: error: Your system lacks the rmdir function.
              Please report this, along with the output of "uname -a", to the
              bug-coreutils@gnu.org mailing list.  To continue past this point,
              rerun configure with SKIP_RMDIR_CHECK=yes.
              E.g., ./configure SKIP_RMDIR_CHECK=yes
See `config.log' for more details.

Я теперь довольно невежественна. о том, как продолжать. Есть предложения?

3 2

3 ответа:

Вы пробовали бегать с SKIP_RMDIR_CHECK=да директива?

Есть ли у встроенной платформы среда, в которой программа командной строки gzip имеет смысл? Если вы хотите сделать сжатие и декомпрессию gzip из программного обеспечения, которое вы пишете для встроенной платформы, то вам следует рассмотреть zlib вместо этого.

Хорошо, спасибо, очень полезно, это дало мне ключи, которые мне были нужны. Я пошел немного дальше в том, что теперь у меня есть более правильная --host строка:

-- host=eIII-parallella-epiphany

Поэтому я называю configure as : ./настроить КС=/cygdrive/[путь mypath]/Parallella/установить/ОГРН/е-Оук опции --host=eIII-parallella-Богоявление

Однако вам нужно сделать еще несколько вещей, включая копирование конфигурации.вложенный сценарий из источников epiphany в ваше собственное пространство настройки. Я также должен был сделать некоторые другие правит, чтобы мачо определился. смотрите : http://forums.parallella.org/viewtopic.php?f=13&t=337&p=2014#p2014 для более подробной информации.

Ура, Бо Уэббер