我正在尝试从www.marcansoft.com编译openlase库,并且遇到了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!
非常感谢任何帮助。
答案 0 :(得分:12)
以下是解决我在Ubuntu 12.04上的问题 x86_64 (64位)的问题(谢谢syslogic)
无论出于何种原因(可能是凌晨1点?)设置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。
你的朋友,
答案 1 :(得分:10)
修复它的另一种方法是将这两行添加到FindCurses.cmake(在顶部):
set(CURSES_LIBRARY "/opt/lib/libncurses.so")
set(CURSES_INCLUDE_PATH "/opt/include")
答案 2 :(得分:7)
暂时将CURSES_USE_NCURSES设置为TRUE以强制使用NCURSES,而不是让CMake尝试查找CURSES。
答案 3 :(得分:2)
您是否也安装了相应的-dev
软件包?在Ubuntu上(可能是从Debian派生的任何东西)它是libncurses5-dev
。其他系统可能使用-devel
或类似标签。
编译器正在寻找库头,标准包不提供这些头。 (只有在编译软件时才需要在运行时使用标头,因此它们可以轻松删除那些不会进行任何软件编译的系统的额外无用的东西。)
答案 4 :(得分:1)
openlase wiki没有显示所有需要的包。检查github上的维基页面以获取更新说明。对于curses,缺少的包是libncurses5-dev sudo apt-get install libncurses5-dev
答案 5 :(得分:0)
暂时将 CURSES_NEED_NCURSES 设置为TRUE以强制使用NCURSES,而不是让CMake尝试查找CURSES。
set(CURSES_NEED_NCURSES TRUE)
CURSES_USE_NCURSES由FindCurses.cmake在内部使用,因此设置无济于事。