CMake не может найти проклятия - PullRequest
14 голосов
/ 13 января 2011

Я пытаюсь скомпилировать библиотеку openlase из www.marcansoft.com и столкнулся с проблемами с CMake.CMake возвращает ошибку, утверждая, что не может найти Curses, и после долгих поисков я все еще не понимаю, в чем проблема.Я проверил, что у меня установлены различные пакеты ncurses, но ошибка сохраняется.Я не очень знаком с CMake, но мне удалось решить другие проблемы с зависимостями, которые возникли до этого.Следующее является выходом в терминале.

tom@SILVER:~/dev/openlase$ cmake ./
-- Found JACK 
CMake Error at /usr/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:70 (MESSAGE):
  Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)
Call Stack (most recent call first):
  /usr/share/cmake-2.8/Modules/FindCurses.cmake:159 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  examples/27c3_slides/CMakeLists.txt:3 (find_package)


-- Configuring incomplete, errors occurred!

Буду признателен за любую помощь.

  • Том

Ответы [ 6 ]

12 голосов
/ 07 февраля 2013

Вот что исправило мои проблемы в Ubuntu 12.04 x86_64 (64 бита) (спасибо syslogic)

По какой-то причине (возможно, 1:00 утра) установка CURSES_USE_NCURSES TRUE не произошлапохоже на работу.Так что я пошел с хакерской работой.

Подтверждено, что установлено:

$ sudo apt-get install libncurses5-dev

Вы увидите что-то эффектное: libncurses5-dev is already the newest version.

Так что найдите библиотеку и включите.

$ locate libncurses.so

Место записи, шахта: /usr/lib/x86_64-linux-gnu/libncurses.so

$ locate curses.h

Место записи, шахта: /usr/include

В: <cmake source dir>/Modules/FindCurses.cmake

добавить сверху, сразу после комментариев

set( CMAKE_INCLUDE_PATH "/usr/include")
set( CMAKE_LIBRARY_PATH "/usr/lib/x86_64-linux-gnu/libncurses.so")

, затем промыть, повторить процесс сборки

./bootstrap
make 
sudo make install

ccmake теперь должен быть установлен.

Ваш приятель

10 голосов
/ 15 декабря 2012

Другой способ исправить это - добавить эти две строки в FindCurses.cmake (вверху):

set(CURSES_LIBRARY "/opt/lib/libncurses.so")
set(CURSES_INCLUDE_PATH "/opt/include")
7 голосов
/ 15 января 2011

Временно установите CURSES_USE_NCURSES на TRUE, чтобы принудительно использовать NCURSES, вместо того, чтобы позволить CMake попытаться найти CURSES.

2 голосов
/ 13 января 2011

У вас также установлен соответствующий пакет -dev?На Ubuntu (и, вероятно, на любом другом, производном от Debian) это libncurses5-dev.Другие системы могут использовать -devel или аналогичные теги.

Компилятор ищет заголовки библиотеки, которые не предоставляются стандартным пакетом.(Заголовки не нужны во время выполнения, только при компиляции программного обеспечения, поэтому они позволяют легко удалять лишние бесполезные вещи для систем, которые не собираются выполнять какую-либо программную компиляцию.)

1 голос
/ 07 февраля 2013

В openlase wiki не отображались все необходимые пакеты.Проверьте там вики-страницы на GitHub для обновленных инструкций.Для проклятий отсутствующим пакетом был libncurses5-dev sudo apt-get install libncurses5-dev

0 голосов
/ 10 июня 2014

Временно установите CURSES_NEED_NCURSES в значение ИСТИНА, чтобы принудительно использовать NCURSES, вместо того, чтобы позволить CMake попытаться найти CURSES.

set(CURSES_NEED_NCURSES TRUE)

CURSES_USE_NCURSES используется внутри FindCurses.cmake, так что настройкаэто не поможет.

...