2013-07-17 2 views
0

Я пытаюсь установить ncurses 5.9 на OS X 10.8 с установленным GCC 4.9. При запуске ./configure в каталоге ncurses ошибок и предупреждений не появляется, но когда я запускаю make, я получаю gcc: error: unrecognized command line option ‘-no-cpp-precomp’. После того, как вы решили проблему (и попробовали ее), я обнаружил, что --no-cpp-precomp (с двумя тире, т. Е. В виде длинного флага) является допустимой командой.Ошибка GCC при установке ncurses на OS X 10.8

Я не уверен, что подсказывало GCC запустить недопустимую команду - было ли это make, или если это была команда, указанная в ncurses.

Есть ли способ исправить это? Если да, то как?

EDIT: Я попытался изменить ссылку в файле ./configure от -no-cpp-precomp к --no-cpp-precomp вручную, с помощью текстового редактора, и был встречен с этим, несмотря на, казалось бы, принимая НКУ вариант --no-cpp-precomp. После этого я попытался запустить autoreconf, и получил это:

configure:6558: error: possibly undefined macro: AC_DIVERT_HELP 
     If this token and others are legitimate, please use m4_pattern_allow. 
     See the Autoconf documentation. 
autoreconf: /opt/local/bin/autoconf failed with exit status: 1 

После его выполнения с m4_pattern_allow вариант:

autoreconf: 'configure.ac' or 'configure.in' is required 

После запуска ./configure && make все равно:

cd man && make DESTDIR="" all 
sh ./MKterminfo.sh ./terminfo.head ./../include/Caps ./terminfo.tail >terminfo.5 
cd include && make DESTDIR="" all 
cat curses.head >curses.h 
AWK=gawk sh ./MKkey_defs.sh ./Caps >>curses.h 
sh -c 'if test "chtype" = "cchar_t" ; then cat ./curses.wide >>curses.h ; fi' 
cat ./curses.tail >>curses.h 
gawk -f MKterm.h.awk ./Caps > term.h 
sh ./edit_cfg.sh ../include/ncurses_cfg.h term.h 
** edit: HAVE_TCGETATTR 1 
** edit: HAVE_TERMIOS_H 1 
** edit: HAVE_TERMIO_H 0 
** edit: BROKEN_LINKER 0 
cd ncurses && make DESTDIR="" all 
gcc -o make_hash -DHAVE_CONFIG_H -I../ncurses -I. -I./../include -I../include -DUSE_BUILD_CC -DHAVE_CONFIG_H -I../ncurses -I. -D_DARWIN_C_SOURCE -DNDEBUG -I. -I../include -I/usr/local/include/ncurses -O2 --param max-inline-insns-single=1200 --no-cpp-precomp ./tinfo/make_hash.c -Wl,-search_paths_first 
gcc: error: unrecognized command line option ‘--no-cpp-precomp’ 
make[1]: *** [make_hash] Error 1 
make: *** [all] Error 2 

ответ

3

Похоже, это было исправлено в последних заплаток Ncurses 5.9

5.9 источника можно найти здесь: ftp://invisible-island.net/ncurses/ncurses-5.9.tar.gz

Последние патчи здесь: ftp://invisible-island.net/ncurses/5.9/ но последний накопительный пакет исправлений, как представляется, исправление: ftp://invisible-island.net/ncurses/5.9/patch-5.9-20130504.sh.gz

Чтобы применить патч, получить 2 файла выше, то:

$ tar xvf ncurses-5.9.tar.gz 
$ cd ncurses-5.9 
$ gzip -dc ../patch-5.9-20130504.sh.gz | sh 
+0

Я попытался применить исправление к файлам, запрошенным интерфейсом командной строки cmd, но многие из них потерпели неудачу («несовместимые версии») частично или полностью. Выполнение './Configure' не возвращает ошибок, как и раньше, и' make' возвращает ту же ошибку, что и раньше. – Jules

+1

Обновлен мой ответ с конкретным файлом патча и инструкциями по исправлению. – Craig

0

--no-cpp-precomp является устаревшим Apple GCC, он должен генерировать предупреждение, а не ошибку, но если флаг -Werror передан компилятору, он будет f ail в предупреждениях, в любом случае, вам придется удалить его вручную из скриптов сборки, а затем запустить autoreconf или вы можете просто удалить его из сценария configure напрямую.

+0

Я не уверен, что вы подразумеваете под «Apple GCC» - я установил GCC из источника, загруженный непосредственно из одного из зеркал, предлагаемых на веб-сайте GNU. – Jules

+0

В этом случае я почти уверен, что используется '-Werror', если вы удаляете либо флаги из скрипта configure, но и должны работать. – iabdalkader

+0

Я только что попробовал все это и опубликовал результат для моего оригинала вопрос. – Jules

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