2016-10-03 123 views
2

我试图在macOS上使用ncurses 6.0。我已经下载了该项目并使用提供的makefile创建了C++演示。然而,当我运行演示,我得到的错误:MacOS上的ncurses(OSX)找不到xterm-256color

Error opening terminal: xterm-256color.

这可能与我没有一个x文件夹在我的terminfo目录:

$ ls /usr/share/terminfo/ 
31 36 45 51 64 69 6e 73 78 
32 37 4c 58 65 6a 6f 74 7a 
33 38 4d 61 66 6b 70 75 
34 39 4e 62 67 6c 71 76 
35 41 50 63 68 6d 72 77 

演示工作正常在Debian 。


我配置的输出是:

** Configuration summary for NCURSES 6.0 20150808: 

     extended funcs: yes 
     xterm terminfo: xterm-new 

     bin directory: /usr/local/bin 
     lib directory: /usr/local/lib 
    include directory: /usr/local/include/ncurses 
     man directory: /usr/local/share/man 
    terminfo directory: /usr/local/share/terminfo 

** Include-directory is not in a standard location 

因为我懒,不看手册我没有运行完整的安装过程。运行后:

./configure 
make 
make install 

它现在的作品。

+0

尝试从'test'目录中执行'./configure && make' ... –

+0

@我'我'这似乎工作,但我在找什么? – sdgfsdh

+1

我不确定你在找什么,虽然你明显通过make install来找到它。 :) –

回答

2

当您构建ncurses时,configure脚本会在最后告诉您安装的位置。如果你给在OSX任何选项,它看起来就像这样:

creating headers.sh 

** Configuration summary for NCURSES 6.0 20160409: 

     extended funcs: yes 
     xterm terminfo: xterm-new 

     bin directory: /usr/local/bin 
     lib directory: /usr/local/lib 
    include directory: /usr/local/include/ncurses 
     man directory: /usr/local/share/man 
    terminfo directory: /usr/local/share/terminfo 

** Include-directory is not in a standard location 

您可以覆盖的terminfo目录的位置(读取INSTALL文件),或通过设置在运行时告诉库中TERMINFO和/或TERMINFO_DIRS环境变量。但是如果没有做这些事情之一,它会在不同的位置查找终端数据库。

ncurses configure脚本为某些系统(主要是基于Linux)提供了一个--prefix=/usr选项,因为它预计是系统curses库(再次阅读INSTALL)。 OSX在这里并不奇怪。

OSX与通常情况不同:它的文件系统(通常)忽略大写/小写名称之间的区别。配置脚本检查这个,如果是的话,它会在一个解决方法中编译,将这些单个字母编码为十六进制数字。例如,0x78是“x”。