Linux 시스템에서 대화 상자 바이너리를 열려고 하면 다음 오류가 발생합니다.Error opening terminal: vt102
ARM용으로 컴파일된 대화 상자와 ncurses를 교차했는데 컴파일이 원활하게 진행되었지만 바이너리 열기 시 오류가 발생했습니다. 오류를 발생시키는 명령은 다음과 같습니다.
$DIALOG --clear --backtitle "Accept EULA to proceed" --title "END USER LICENSE AGREEMENT" --no-mouse --no-lines --extra-button --ok-label 'Accept' --extra-label 'Decline' "$@" --textbox /vss/scripts/End-User-Product-License-Agmt.txt 0 0
답변1
이 메시지는 ncurses가 터미널 설명을 찾을 수 없음을 나타냅니다.vt102
. 이런 일이 발생할 수 있는 이유는
- 터미널 데이터베이스의 기본 컴파일 경로 이름이 터미널 데이터베이스가 설치된 위치와 일치하지 않습니다.
- 터미널 데이터베이스가 설치되어 있지 않습니다.
이 두 가지 모두 크로스 컴파일에서 (아마도) 쉽게 수행할 수 있습니다. 구성 스크립트를 실행하면 사용자 정의 가능한 중요한 경로 이름이 마지막에 인쇄됩니다. 예를 들어:
** Configuration summary for NCURSES 6.0 20170909:
extended funcs: yes
xterm terminfo: xterm-new
bin directory: /usr/bin
lib directory: /usr/lib
include directory: /usr/include/ncursesw6
man directory: /usr/share/man
terminfo directory: /usr/local/ncurses/share/terminfo
pkg-config directory: /usr/lib/x86_64-linux-gnu/pkgconfig
런타임 시 터미널 데이터베이스의 경로 이름을 재정의하지 않는 경우(사용TERMINFO
그리고/또는TERMINFO_DIRS
), 컴파일된 경로 이름을 사용합니다.
터미널 데이터베이스를 설치하려면 다음을 사용할 수 있습니다.tic
,예를 들어,
tic -x terminfo.src
또는 다른 컴퓨터의 터미널 데이터베이스와 함께 디렉터리 트리를 복사합니다.
추가 자료: