Подтвердить что ты не робот

CMake не может найти Curses

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

[email protected]:~/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!

Любая помощь будет принята с благодарностью.

  • Tom
4b9b3361

Ответ 1

Вот что исправили мои проблемы на 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 должен быть установлен.

Приятель,

Ответ 2

Еще один способ исправить это - добавить эти 2 строки в FindCurses.cmake(сверху):

set(CURSES_LIBRARY "/opt/lib/libncurses.so")
set(CURSES_INCLUDE_PATH "/opt/include")

Ответ 3

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

Ответ 4

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

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

Ответ 5

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

Ответ 6

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

set(CURSES_NEED_NCURSES TRUE)

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