Linux From Scratch - Version 12.1-systemd
Chapter 6. Cross Compiling Temporary Tools
이전	위로 / 처음으로	다음
M4-1.4.19	Bash-5.2.21

6.3. Ncurses-6.4-20230520

Ncurses 패키지에는 터미널에 독립적인 문자 화면 처리를 위한 라이브러리가 포함되어 있습니다.

대략적인 빌드 시간: 0.3 SBU
필요한 디스크 공간: 51MB

6.3.1. Ncurses 설치

먼저 구성하는 동안 gawk를 먼저 찾도록 해야합니다. 그런 다음 다음 명령을 실행하여 빌드 호스트에서 “tic” 프로그램을 먼저 빌드합니다. 컴파일을 위해 Ncurses를 준비합니다.

새로운 구성 옵션의 의미

–with-manpage-format=normal
호스트 배포판에 압축된 매뉴얼 페이지가 있는 경우 Ncurses가 압축된 매뉴얼 페이지를 설치하는 것을 금지합니다.

–with-shared
Ncurses가 공유 C 라이브러리를 빌드하고 설치하도록 합니다.

–without-normal
Ncurses가 정적 C 라이브러리를 빌드 및 설치하지 않도록 합니다.

–without-debug
Ncurses가 디버그 라이브러리를 빌드 및 설치하지 않도록 합니다.

–with-cxx-shared
Ncurses가 공유 C++ 바인딩을 빌드 및 설치하도록 합니다. 또한 정적 C++ 바인딩을 빌드 및 설치하지 못하도록 합니다.

–without-ada
호스트에는 있을 수 있지만 chroot 환경에 들어가면 사용할 수 없는 Ada 컴파일러에 대한 지원을 Ncurses가 빌드하지 않도록 합니다.

–disable-stripping
빌드 시스템이 호스트에서 strip 프로그램을 사용하지 못하도록 합니다. 크로스 컴파일된 프로그램에서 호스트 도구를 사용하면 오류가 발생할 수 있습니다.

-enable-widec
일반 라이브러리(예: libncursesw.so.6.4-20230520) 대신 와이드 문자 라이브러리(예: libncurses.so.6.4-20230520)를 빌드하도록 한다. 이러한 와이드 문자 라이브러리는 멀티바이트 및 기존 8비트 로캘 모두에서 사용할 수 있는 반면 일반 라이브러리는 8비트 로캘에서만 제대로 작동합니다. 와이드 문자 라이브러리와 일반 라이브러리는 소스 호환이 가능하지만 바이너리 호환은 불가능합니다.

패키지를 컴파일합니다. 패키지를 설치합니다.

설치 옵션의 의미:

TIC_PATH=$(pwd)/build/progs/tic
빌드 머신에서 실행되는 새로 빌드된 tic 프로그램의 경로를 전달해야 터미널 데이터베이스가 오류 없이 생성될 수 있습니다.

ln -sv libncursesw.so $LFS/usr/lib/libncurses.so
libncurses.so 라이브러리는 곧 빌드할 몇 가지 패키지에 필요합니다. 이 심볼릭 링크를 생성하여 libncursesw.so를 대체로 사용합니다.

sed -e 's/^#if.*XOPEN.*$/#if 1/' …
헤더 파일 curses.h에는 다양한 Ncurses 데이터 구조의 정의가 포함되어 있습니다. 서로 다른 전처리기 매크로 정의를 사용하면 데이터 구조 정의의 두 가지 다른 집합을 사용할 수 있습니다: 8비트 정의는 libncurses.so와 호환되고 와이드 문자 정의는 libncursesw.so와 호환됩니다. LFS는 libncurses.so 대신 libncursesw.so를 사용하므로 헤더 파일을 편집하여 항상 libncursesw.so와 호환되는 와이드 문자 데이터 구조 정의를 사용하도록 합니다.

이 패키지에 대한 자세한 내용은 섹션 8.29.2, "Ncurses의 내용"에 나와 있습니다.