문서의 이전 판입니다!
Linux From Scratch - Version 12.1-systemd | ||
---|---|---|
Chapter 6. Cross Compiling Temporary Tools | ||
이전 | 위로 / 처음으로 | 다음 |
개요 | Ncurses-6.4-20230520 |
6.3. Ncurses-6.4-20230520
Ncurses 패키지에는 터미널에 독립적인 문자 화면 처리를 위한 라이브러리가 포함되어 있습니다.
대략적인 빌드 시간: 0.3 SBU 필요한 디스크 공간: 51MB 6.3.1. Ncurses 설치 먼저 구성하는 동안 gawk를 먼저 찾아야 합니다:
sed -i s/mawk configure 그런 다음 다음 명령을 실행하여 빌드 호스트에서 “tic” 프로그램을 빌드합니다: mkdir 빌드 pushd 빌드 ../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 새로운 구성 옵션의 의미 –with-manpage-format=normal 이는 호스트 배포 자체에 압축된 수동 페이지가 있는 경우 발생할 수 있는 압축된 수동 페이지를 Ncurses가 설치하지 못하게 합니다. –with-shared Ncurses가 공유 C 라이브러리를 빌드하고 설치하도록 합니다. –without-normal Ncurses가 정적 C 라이브러리를 빌드 및 설치하지 않도록 합니다. –without-debug Ncurses가 디버그 라이브러리를 빌드 및 설치하지 않도록 합니다. –with-cxx-shared 이 옵션은 Ncurses가 공유 C++ 바인딩을 빌드 및 설치하도록 합니다. 또한 정적 C++ 바인딩을 빌드 및 설치하지 못하도록 합니다. –without-ada 호스트에는 있을 수 있지만 루트 환경에 들어가면 사용할 수 없는 Ada 컴파일러에 대한 지원을 Ncurses가 빌드하지 않도록 합니다. –disable-stripping 이 스위치는 빌드 시스템이 호스트에서 스트립 프로그램을 사용하지 못하도록 합니다. 교차 컴파일된 프로그램에서 호스트 도구를 사용하면 오류가 발생할 수 있습니다. -enable-widec 이 스위치는 일반 라이브러리(예: libncursesw.so.6.4-20230520) 대신 와이드 문자 라이브러리(예: libncurses.so.6.4-20230520)를 빌드하도록 한다. 이러한 와이드 문자 라이브러리는 멀티바이트 및 기존 8비트 로캘 모두에서 사용할 수 있는 반면 일반 라이브러리는 8비트 로캘에서만 제대로 작동합니다. 와이드 문자 라이브러리와 일반 라이브러리는 소스 호환이 가능하지만 바이너리 호환은 불가능합니다. 패키지를 컴파일합니다: make 패키지를 설치합니다: make DESTDIR=$LFS TIC_PATH=$(pwd)/build/progs/tic 설치 ln -sv libncursesw.so $LFS/usr/lib/libncurses.so sed -e 's/^#if.*XOPEN.*$/#if 1/' \. -i $LFS/usr/include/curses.h 설치 옵션의 의미: TIC_PATH=$(pwd)/build/progs/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와 호환됩니다. libncurses.so 대신 libncursesw.so를 사용하므로 헤더 파일을 편집하여 항상 libncursesw.so와 호환되는 와이드 문자 데이터 구조 정의를 사용하도록 하세요. 이 패키지에 대한 자세한 내용은 섹션 8.29.2, “Ncurses의 내용”에 나와 있습니다. * Translated with www.DeepL.com/Translator (free version) *