| 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 패키지 구성"에 나와 있습니다.