Ошибка компиляции Ncurses 6.0 - ошибка: ожидается ')' перед 'int'

Описание проблемы

Попытка установить ncurses 6.0 на Ubuntu 16.04 LTS завершается ошибкой компиляции:

In file included from ./curses.priv.h:325:0,
                 from ../ncurses/lib_gen.c:19:
_24273.c:843:15: error: expected ‘)’ before ‘int’
../include/curses.h:1631:56: note: in definition of macro ‘mouse_trafo’
#define mouse_trafo(y,x,to_screen) wmouse_trafo(stdscr,y,x,to_screen)
                                                    ^
Makefile:962: recipe for target '../objects/lib_gen.o' failed
make[1]: *** [../objects/lib_gen.o] Error 1
make[1]: Leaving directory '/home/netsamir/Sofware/Tmux/ncurses-6.0/ncurses'
Makefile:113: recipe for target 'all' failed
make: *** [all] Error 2

Конфигурация

netsamir@octopus:~/Sofware/Tmux/ncurses-6.0$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04 LTS
Release:    16.04
Codename:   xenial

netsamir@octopus:~/Sofware/Tmux/ncurses-6.0$ gcc --version
gcc (Ubuntu 5.3.1-14ubuntu2) 5.3.1 20160413
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

netsamir@octopus:~/Sofware/Tmux/ncurses-6.0$ cpp --version
cpp (Ubuntu 5.3.1-14ubuntu2) 5.3.1 20160413
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

person Samir Sadek    schedule 27.05.2016    source источник
comment
Об этом сообщалось и исправлено в bug-ncurses список рассылки за несколько месяцев до этого. Проблема заключалась в версии mawk для Debian.   -  person Thomas Dickey    schedule 11.08.2016
comment
Ответ Томаса Дики на самом деле привел к исправлению для меня, в отличие от принятого ответа на ОП. Я просто взломал исправление, отредактировав MKlib_gen.sh так что PRG=gcc вместо подоболочки с участием awk.   -  person HAL 9001    schedule 12.08.2016


Ответы (2)


Решение

Экспортируйте переменную CPPFLAGS в оболочке с параметром -P следующим образом.

netsamir@octopus:~/$ export CPPFLAGS="-P"

Ссылка

http://trac.sagemath.org/ticket/19762

person Samir Sadek    schedule 27.05.2016
comment
сделайте это перед настройкой - person iamgr007; 31.08.2016
comment
Его также можно добавить в команду configure, чтобы он имел только временный эффект. Пример: ./configure ‹options› CPPFLAGS=-P - person JohnMudd; 19.10.2016
comment
@JohnMudd, ну тогда есть еще CPPFLAGS=-P ./configure, но это зависит от наличия конкретной оболочки. ;-) - person jpaugh; 22.11.2016

$ export CPPFLAGS="-P" Это работает и для моей локальной установки ncurses 6.0 на Ubuntu 16.04 LTS.

person James Chung    schedule 08.08.2016
comment
Спасибо, Чувак. Я искал документацию для выделения кода. - person James Chung; 08.08.2016