Как кросс-сборка 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 ответа:
Есть ли у встроенной платформы среда, в которой программа командной строки 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 для более подробной информации.
Ура, Бо Уэббер