차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
다음 판 | 이전 판 | ||
linuxfromscratch:12.1:089-binutils-2.42 [2024/05/18 16:47] – 만듦 - 바깥 편집 127.0.0.1 | linuxfromscratch:12.1:089-binutils-2.42 [2024/06/17 08:07] (현재) – [8.19.2. Binutils 패키지 구성] baecy | ||
---|---|---|---|
줄 1: | 줄 1: | ||
+ | ^ Linux From Scratch - Version 12.1-systemd | ||
+ | ^ Chapter 8. Installing Basic System Software | ||
+ | |[[.: | ||
+ | |||
+ | |PkgConf-2.1.1 | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===== 8.19. Binutils-2.42 ===== | ||
+ | |||
+ | Binutils 패키지에는 링커, 어셈블러 및 기타 객체 파일 처리를 위한 도구가 포함되어 있습니다. | ||
+ | |||
+ | * **빌드 시간:** 2.2 SBU | ||
+ | * **디스크 공간:** 2.7 GB | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ==== 8.19.1. Binutils 설치 ==== | ||
+ | |||
+ | Binutils 문서에서는 별도의 디렉터리에서 빌드하는 것을 권장합니다. | ||
+ | |||
+ | <code bash> | ||
+ | mkdir -v build | ||
+ | cd build | ||
+ | </ | ||
+ | |||
+ | Binutils 컴파일을 준비합니다. | ||
+ | |||
+ | <code bash> | ||
+ | ../ | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | === configure 옵션 설명 === | ||
+ | |||
+ | * // | ||
+ | * // | ||
+ | * // | ||
+ | * // | ||
+ | |||
+ | 패키지를 컴파일합니다. | ||
+ | |||
+ | <code bash> | ||
+ | make tooldir=/ | ||
+ | </ | ||
+ | |||
+ | === make 옵션 설명 === | ||
+ | |||
+ | * // | ||
+ | |||
+ | <WRAP important center round 90%> | ||
+ | **중요** \\ | ||
+ | 이 섹션의 Binutils 테스트 스위트는 매우 중요합니다. \\ 어떤 상황에서도 건너뛰지 마세요. | ||
+ | </ | ||
+ | |||
+ | 결과를 테스트합니다. | ||
+ | |||
+ | <code bash> | ||
+ | make -k check | ||
+ | </ | ||
+ | |||
+ | 실패한 테스트 목록을 보려면 다음을 실행합니다. | ||
+ | |||
+ | <code bash> | ||
+ | grep ' | ||
+ | </ | ||
+ | |||
+ | '' | ||
+ | |||
+ | 패키지를 설치합니다. | ||
+ | |||
+ | <code bash> | ||
+ | make tooldir=/ | ||
+ | </ | ||
+ | |||
+ | 사용하지 않는 정적 라이브러리를 제거합니다. | ||
+ | |||
+ | <code bash> | ||
+ | rm -fv / | ||
+ | </ | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ==== 8.19.2. Binutils 패키지 구성 ==== | ||
+ | |||
+ | * **설치된 프로그램** \\ addr2line, ar, as, c++filt, dwp, elfedit, gprof, gprofng, ld, ld.bfd, ld.gold, nm, objcopy, objdump, ranlib, readelf, size, strings, strip | ||
+ | * **설치된 라이브러리** \\ libbfd.so, libctf.so, libctf-nobfd.so, | ||
+ | * **설치된 디렉토리** \\ / | ||
+ | |||
+ | === 간략한 설명=== | ||
+ | |||
+ | * **addr2line** \\ 프로그램 주소를 파일 이름과 줄 번호로 변환합니다. 주소와 실행 파일의 이름이 주어지면, | ||
+ | * **ar** \\ 아카이브에서 생성, 수정 및 추출합니다. | ||
+ | * **as** \\ gcc의 출력을 객체 파일로 어셈블하는 어셈블러. | ||
+ | * **c++filt** \\ 링커가 C++와 Java 심볼의 엉킴을 풀고 과부하된 함수가 충돌하지 않도록 하는 데 사용됩니다. | ||
+ | * **dwp** \\ DWARF 패키징 유틸리티 | ||
+ | * **elfedit** \\ ELF 파일의 ELF 헤더를 업데이트합니다. | ||
+ | * **gprof** \\ 호출 그래프 프로필 데이터를 표시합니다. | ||
+ | * **gprofng** \\ 성능 데이터 수집 및 분석 | ||
+ | * **ld** \\ 여러 오브젝트 및 아카이브 파일을 단일 파일로 결합하여 데이터를 재배치하고 심볼 참조를 묶는 링커입니다. | ||
+ | * **ld.gold** \\ ELF 오브젝트 파일 형식만 지원하는 ld의 축소 버전입니다. | ||
+ | * **ld.bfd** \\ **ld**에 대한 하드 링크 | ||
+ | * **nm** \\ 지정된 객체 파일에서 발생하는 심볼을 나열합니다. | ||
+ | * **objcopy** \\ 한 유형의 오브젝트 파일을 다른 유형으로 변환합니다. | ||
+ | * **objdump** \\ 표시할 특정 정보를 제어하는 옵션과 함께 지정된 객체 파일에 대한 정보를 표시합니다; | ||
+ | * **ranlib** \\ 아카이브의 내용에 대한 색인을 생성하고 아카이브에 저장합니다; | ||
+ | * **readelf** \\ ELF 타입 바이너리에 대한 정보를 표시합니다. | ||
+ | * **size** \\ 주어진 오브젝트 파일의 섹션 크기와 총 크기를 나열합니다. | ||
+ | * **string** \\ 지정된 각 파일에 대해 지정된 길이(기본값은 4) 이상의 출력 가능한 문자 시퀀스를 출력합니다. 객체 파일의 경우 기본적으로 초기화 및 로드 섹션의 문자열만 인쇄하고 다른 유형의 파일의 경우 전체 파일을 검사합니다. | ||
+ | * **strip** \\ 객체 파일에서 심볼을 삭제합니다. | ||
+ | * libbfd \\ 바이너리 파일 기술자(File Descriptor) 라이브러리 | ||
+ | * libctf \\ Compat ANSI-C 타입 포맷 디버깅 지원 라이브러리 | ||
+ | * libctf-nobfd \\ libbfd 기능을 사용하지 않는 libctf 변형 라이브러리 | ||
+ | * libgprofng \\ **gprofng**에서 사용하는 대부분의 루틴을 포함하는 라이브러리 | ||
+ | * libopcodes \\ 프로세서를 위한 명령어의 " | ||
+ | * libsframe \\ 간단한 언와인더를 사용하여 온라인 백트레이싱을 지원하는 라이브러리. | ||
+ | |||
+ | |||
+ | |||