Curses库未找到。

11

我正尝试构建5.6.4-labs-innodb-memcached,但遇到以下问题:

# cmake ./
-- MySQL 5.6.4-labs-innodb-memcached
-- Could NOT find Curses (missing:  CURSES_LIBRARY CURSES_INCLUDE_PATH) 
CMake Error at cmake/readline.cmake:83 (MESSAGE):
  Curses library not found.  Please install appropriate package,

  remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5- dev, on Redhat and derivates it is ncurses-devel.
Call Stack (most recent call first):
cmake/readline.cmake:127 (FIND_CURSES)
cmake/readline.cmake:217 (MYSQL_USE_BUNDLED_LIBEDIT)
CMakeLists.txt:263 (MYSQL_CHECK_READLINE)


-- Configuring incomplete, errors occurred!

已经安装了libncurses5-dev并设置了CURSES_USE_NCURSES=true,但它没有起到作用。你有什么建议吗?我已经在另一台机器上编译了这个包...

/var/cache/apt/archives/libncurses5-dev_5.7+20101128-1_i386.deb
/var/lib/dpkg/info/libncurses5.postinst
/var/lib/dpkg/info/libncursesw5.list
/var/lib/dpkg/info/ncurses-base.preinst
/var/lib/dpkg/info/libncursesw5.postrm
/var/lib/dpkg/info/libncursesw5.shlibs
/var/lib/dpkg/info/libncursesw5.md5sums
/var/lib/dpkg/info/libncurses5.symbols
/var/lib/dpkg/info/ncurses-bin.preinst
/var/lib/dpkg/info/ncurses-bin.list
/var/lib/dpkg/info/libncurses5-dev.list
/var/lib/dpkg/info/libncursesw5.symbols
/var/lib/dpkg/info/libncursesw5.postinst
/var/lib/dpkg/info/libncurses5-dev.md5sums
/var/lib/dpkg/info/ncurses-base.conffiles
/var/lib/dpkg/info/libncurses5.shlibs
/var/lib/dpkg/info/ncurses-base.list
/var/lib/dpkg/info/ncurses-bin.md5sums
/var/lib/dpkg/info/libncurses5.md5sums
/var/lib/dpkg/info/libncurses5.list
/var/lib/dpkg/info/libncurses5.postrm
/var/lib/dpkg/info/ncurses-base.md5sums
/tmp/curses
/usr/include/cursesf.h
/usr/include/curses.h
/usr/include/cursesw.h
/usr/include/cursesp.h
/usr/include/ncurses_dll.h
/usr/include/ncurses.h
/usr/include/cursesm.h
/usr/include/cursesapp.h
/usr/share/lintian/overrides/ncurses-bin
/usr/share/lintian/overrides/ncurses-base
/usr/share/man/man1/ncursesw5-config.1.gz
/usr/share/man/man1/ncurses5-config.1.gz
/usr/share/doc/libncurses5
/usr/share/doc/libncurses5/TODO.Debian
/usr/share/doc/libncurses5/copyright
/usr/share/doc/libncurses5/FAQ
/usr/share/doc/libncurses5/changelog.Debian.gz
/usr/share/doc/ncurses-bin
/usr/share/doc/ncurses-bin/copyright
/usr/share/doc/ncurses-bin/changelog.Debian.gz
/usr/share/doc/libncurses5-dev
/usr/share/doc/libncurses5-dev/copyright
/usr/share/doc/libncurses5-dev/changelog.Debian.gz
/usr/share/doc/libncursesw5
/usr/share/doc/libncursesw5/copyright
/usr/share/doc/libncursesw5/changelog.Debian.gz
/usr/share/doc/ncurses-base
/usr/share/doc/ncurses-base/copyright
/usr/share/doc/ncurses-base/changelog.Debian.gz
/usr/bin/ncurses5-config
/usr/bin/aptitude-curses
/usr/bin/ncursesw5-config
/usr/lib/libncurses++.a
/usr/lib/libncurses.so
/usr/lib/libncurses.a
/usr/lib/libcurses.so
/usr/lib/libcurses.a
/usr/lib/python2.7/curses
/usr/lib/python2.7/curses/textpad.pyc
/usr/lib/python2.7/curses/has_key.pyc
/usr/lib/python2.7/curses/wrapper.py
/usr/lib/python2.7/curses/ascii.py
/usr/lib/python2.7/curses/panel.pyc
/usr/lib/python2.7/curses/has_key.py
/usr/lib/python2.7/curses/__init__.py
/usr/lib/python2.7/curses/textpad.py
/usr/lib/python2.7/curses/panel.py
/usr/lib/python2.7/curses/__init__.pyc
/usr/lib/python2.7/curses/wrapper.pyc
/usr/lib/python2.7/curses/ascii.pyc
/usr/lib/python2.7/lib-dynload/_curses.so
/usr/lib/python2.7/lib-dynload/_curses_panel.so
/lib/libncursesw.so.5.7
/lib/libncurses.so.5
/lib/libncursesw.so.5
/lib/libncurses.so.5.7

你的意思是,“它在另一台机器上?”——为什么不在同一台机器上构建所有东西? - DLRdave
7个回答

19

可能是来自缓存文件的错误。

删除CMakeCache.txt,然后再试一遍。


3
精彩- 简短、简洁明了,无需设置繁琐的路径。 - Vérace

15

我不知道为什么它会失败,但是你可以使用错误消息“缺少...”,然后手动设置缺少的内容。例如:

cmake -DCURSES_LIBRARY=/usr/lib/libncurses.so -DCURSES_INCLUDE_PATH=/usr/include .

应该修复它。


1
谢谢!那真是帮了大忙。 - ScottJShea

12

也许你需要额外的ncurses文件。

sudo yum install ncurses-devel 

然后删除CMakeCache.txt。

再次尝试运行CMake。这对我有用。


4
除了我需要安装 apt-get install libncurses5-dev 之外,其他都对我有用。 - Sygmoral

8

sudo aptitude install libncurses-dev in Debian.


1
尝试在树莓派的crosstool-ng上运行./configure时,为我解决了问题。 - Astrofra
安装 Pintos 操作系统时解决了 Bochs 的安装问题。 - onlycparra

7

出于某些原因,CMake找不到包含文件和库。通过运行cmake -D CMAKE_PREFIX_PATH=/path/to/curses/prefix .来帮助它。


我应该指向哪个路径?我已经在我的帖子中添加了与我的机器上的curses相关的所有文件和目录。 - Roman Newaza
嗯,奇怪。好的,请尝试将CMAKE_PREFIX_PATH设置为/usr。如果不起作用,请手动设置CURSES_LIBRARY和CURSES_INCLUDE_PATH。 - arrowd
CMAKE_PREFIX_PATH=/usr 没有帮助。我应该在shell中设置CURSES_LIBRARY和CURSES_INCLUDE_PATH吗? - Roman Newaza
不,与CMAKE_PREFIX_PATH相同的方式 - 在cmake命令调用中使用-D标志。 - arrowd
对于CURSES_INCLUDE_PATH的路径,请尝试使用以下命令:whereis curses对于CURSES_LIBRARY的路径,请尝试使用以下命令:find /usr/lib | grep curses.*\.so$ - Lori

2

这个方法对我有效

  1. locate libncurses.so

  2. cmake -DCURSES_LIBRARY=/定位结果的路径 CURSES_INCLUDE_PATH=/usr/include


2

我有同样的问题,删除缓存文件对我有用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接