Я знаю, что это очень старый вопрос, но проблема все же возникла при компиляции python 3.6.0 из источника, поэтому я думаю, что это все еще актуально.
Последние версии ncurses представлены в нескольких вариантах: обычная, широкая поддержка символов, с резьбой. Чтобы позволить программистам сохранять и использовать разные варианты, помимо именования библиотек по-разному (ncursesw.so
, ncursest.so
и т. Д.), Скрипт ncurses configure устанавливает make-файл, чтобы поместить файлы заголовков в подкаталоги по умолчанию. Это также позволяет иметь различные реализации curses наряду с ncurses, как указано в man page.
Некоторые программы, однако, по-прежнему предполагают, что curses.h
, по всем другим заголовкам ncurses, размещены на верхнем уровне, включают пути поиска и не будут входить в подкаталоги. Во многих дистрибутивов обычно есть какой-то обходной путь для этой проблемы в Ncurses Developement пакетов, но если вы компилируете Ncurses из источника, существует два возможных подхода к решению вопроса:
- Использование
CPPFLAGS
или эквивалент, в качестве - утверждает принятый ответ. Он работает, но вы должны каждый раз устанавливать соответствующие флаги компиляции.
- Конфигурация ncurses с
--enable-overwrite
. Это установит файлы заголовков ncurses в каталоге верхнего уровня, в соответствии с вашим --prefix
.
Если вы не планируете устанавливать альтернативный проклинает библиотеку, это совершенно безопасно помещать заголовки Ncurses в верхнем уровне, включает путь, и этот подход следует Gentoo.
Это сделало трюк для меня. Я попытался установить CFLAGS, и это не сработало, это должно быть CPPFLAGS. И для меня LDFLAGS не было необходимо, поскольку libncurses находится на моем LD_LIBRARY_PATH в порядке. Спасибо! – Mojo