Linux From Scratch - Version 12.1-systemd | ||
---|---|---|
Chapter 6. Cross Compiling Temporary Tools | ||
이전 | 위로 / 처음으로 | 다음 |
M4-1.4.19 | Bash-5.2.21 |
Ncurses 패키지에는 터미널 독립적인 문자 화면 처리를 위한 라이브러리가 포함되어 있습니다.
우선 설정하는 동안 gawk를 먼저 찾도록 해야합니다.
sed -i s/mawk// configure
다음 명령을 실행하여 빌드 호스트에서 “tic” 프로그램을 먼저 빌드합니다.
mkdir build
pushd build
../configure
make -C include
make -C progs tic
popd
Ncurses 컴파일을 준비합니다.
./configure --prefix=/usr \
--host=$LFS_TGT \
--build=$(./config.guess) \
--mandir=/usr/share/man \
--with-manpage-format=normal \
--with-shared \
--without-normal \
--with-cxx-shared \
--without-debug \
--without-ada \
--disable-stripping \
--enable-widec
libncurses.so.6.4-20230520
) 대신 와이드 문자 라이브러리(예: libncursesw.so.6.4-20230520
)를 빌드하도록 한다. 와이드 문자 라이브러리는 멀티바이트 및 기존 8비트 로캘 모두에서 사용할 수 있는 반면 일반 라이브러리는 8비트 로캘에서만 제대로 작동합니다. 와이드 문자 라이브러리와 일반 라이브러리는 소스 호환이 가능하지만 바이너리 호환은 불가능합니다.패키지를 컴파일합니다.
make
패키지를 설치합니다.
make DESTDIR=$LFS TIC_PATH=$(pwd)/build/progs/tic install
ln -sv libncursesw.so $LFS/usr/lib/libncurses.so
sed -e 's/^#if.*XOPEN.*$/#if 1/' \
-i $LFS/usr/include/curses.h
libncurses.so
라이브러리는 곧 빌드할 몇 가지 패키지에 필요합니다. 이 심볼릭 링크를 생성하여 libncursesw.so
를 대체로 사용합니다.curses.h
에는 다양한 Ncurses 데이터 구조의 정의가 포함되어 있습니다. 서로 다른 전처리기 매크로 정의를 사용하면 데이터 구조 정의의 두 가지 다른 집합을 사용할 수 있습니다: 8비트 정의는 libncurses.so
와 호환되고 와이드 문자 정의는 libncursesw.so
와 호환됩니다. LFS는 libncurses.so
대신 libncursesw.so
를 사용하므로 헤더 파일을 편집하여 항상 libncursesw.so
와 호환되는 와이드 문자 데이터 구조 정의를 사용하도록 합니다.이 패키지에 대한 자세한 내용은 8.29.2. "Ncurses 패키지 구성"에 나와 있습니다.