2012-06-11 5 views
2

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

Поэтому я запускаю 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 скомпилированные программы не могут работать, б/с, что является кросс-компилятор. В сообщении говорится, что я должен использовать опцию --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 
       [email protected] 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. 

Я теперь довольно невежественный о том, как продолжить. Какие-либо предложения?

ответ

2

Вы пытаетесь использовать команду SKIP_RMDIR_CHECK = yes ?

+0

Спасибо.Это действительно позволило завершить настройку. В любом случае мы выбрали другой путь, поэтому сейчас это менее важно. Мне просто интересно (и не сложно сказать из большого make-файла), какие там были включены специальные настройки ARM. В любом случае с этим make-файлом ARM я могу запустить сборку, но она попадает на ошибку файла заголовка (хотя это не связано с программой configure). – ysap

3

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

+0

Ответ - несколько. У нас есть поддержка стандартного ввода-вывода при работе с GDB. Конечной целью является разделение приложения, например, часть ввода-вывода выполняется на хосте, но для начала я попробовал простую сборку программы во встроенной среде. Спасибо за указание zlib. С первого взгляда это похоже на проект, не связанный с gzip, не так ли? Но он поддерживает алгоритмы сжатия gzip, поэтому я могу написать утилиту, которая декодирует/кодирует любой файл, закодированный/подлежащий расшифровке gzip, - это правильно? – ysap

+1

zlib очень похож на gzip, написанный теми же авторами. И да, вы можете использовать его для сжатия и распаковки потоков gzip, совместимых с утилитой gzip. –

0

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

--host = eIII-parallella-прозрение

так я называю настройки как: ./configure CC =/cygdrive/[MYPATH]/Parallella/INSTALL/bin/e-gcc -host = eIII-parallella-epiphany

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

ура, Beau Webber

Смежные вопросы