| |||
| Home > 기본 링커 기능 사용 > 라이브러리 검색, 선택 및 스캔 | |||
링커에서 객체 파일을 이미지에 추가하는 방법과 라이브러리를 이미지에 추가하는 방법에는 다음과 같은 차이점이 있습니다.
입력 목록에 있는 각 객체 파일은 참조 여부에 상관없이 무조건적으로 출력 이미지에 추가됩니다. 최소한 하나의 객체가 지정되어야 합니다.
라이브러리 구성원은 객체 파일이나 이미 포함된 라이브러리 구성원이 해당 구성원을 비 weak하게 참조하거나 해당 구성원을 추가하도록 링커가 명시적인 지시를 받은 경우에만 출력에 포함됩니다.
라이브러리 구성원이 입력 파일 목록에 명시적으로 요청된 경우에는 현재 아무런 참조를 확인하지 않더라도 로드됩니다. 이런 경우 명시적으로 요청된 구성원은 일반 객체와 마찬가지로 처리됩니다.
미사용 섹션은 --no_remove 또는 --keep을
사용하는 경우가 아닌 한 이후에 제거됩니다.
weak 기호에 대해 참조가 확인되지 않은 경우 라이브러리 구성원은 로드되지 않습니다.
--no_scanlib 명령 행 옵션을 지정하면 링커에서는 기본 ARM 라이브러리를
검색하지 않고 입력 파일 목록에 지정된 라이브러리만 사용하여 참조를 확인합니다.
그러므로 링커에서는 다음과 같이 내부 라이브러리 목록을 만듭니다.
입력 파일 목록에 명시적으로 지정된 라이브러리는 모두 목록에 추가됩니다.
입력 객체에 임베드된 요청을 충족하기 위한 ARM 표준 라이브러리를 식별하기 위해 사용자가 지정한 검색 경로를 검사합니다.
검색한 디렉토리와 그 하위 디렉토리에서 가장 적합한 라이브러리 변형을 선택합니다. ARM에서 제공하는 라이브러리에는 구성원 특성에 따라 명명된 여러 가지 변형이 있습니다.