make menuconfig時提示“error opening terminal”的解決方法
Linux環境下,編譯嵌入式系統時會用到make menuconfig或make config命令,這些命令通常會使用ncurses庫,如果ncurses庫沒有安裝設置正確,可能出現如下的錯誤信息: www.2cto.com
error opening terminal Linux
error opening terminal xterm
error opening terminal vt100
error opening terminal vt102
error opening terminal unknown
error opening terminal cgywin
...
解決辦法: www.2cto.com
1. 首先要確定ncurses庫是否已經正確安裝。在debian, Ubuntu上,可以用dpkg -l | grep ncurses 查看ncurses庫是否已安裝。
2. 如果ncurses已經安裝了,需要查看TERM, TERMINFO兩個環境變量是否已經設置正確。如果沒有設置正確,需要設置為正確的值。
$ echo $TERM
$ echo $TERMINFO
關於TERMINFO, 應設置為terminfo的路徑,比如/usr/share/terminfo 或者 /lib/terminfo。查看terminfo的存儲位置用一下指令:
$ whereis terminfo
terminfo: /etc/terminfo /lib/terminfo /usr/share/terminfo /usr/share/man/man5/terminfo.5.gz
查看terminfo目錄下是否保存了終端信息文件:其中通常分為a, b, c, d...z這些字母目錄,每個目錄中包含了以該字母開頭的term信息。比如vt100放在"v"目錄中。我們需要的term,必須在對應的目錄中存在 term信息。確定這些信息後,就可以設置TERM和TERMINFO信息: www.2cto.com
$ export TERM=vt100
$ export TERMINFO=/usr/share/terminfo
上面的設置必須保證/usr/share/terminfo中存在term信息,且/usr/share/terminfo/v/vt100是存在的。
關於TERM的設置,有可能需要設置成Linux, vt100-putty等不同的TERM。Linux通常用於Linux控制台,vt100-putty顧名思義是使用putty遠程登錄的vt100終端。
以下是在Ubuntu12.10環境下,解決了此問題後TERM和TERMINFO兩個環境變量的值。
$ echo $TERM
xterm
$ echo $TERMINFO
/lib/terminfo/