2.2.3. 입력 파일 목록 지정

모든 입력 파일의 내용은 고유해야 합니다. 심볼이 여러 번 정의되면 링커에서 오류 메시지를 생성합니다.이러한 옵션은 링커로 전달된 입력 파일을 다음과 같이 정의합니다.

input-file-list

이것은 개체, 라이브러리 또는 심볼 정의(symdefs) 파일의 공백으로 구분된 목록입니다. 링커에서는 입력 파일 목록을 순서대로 정렬합니다. 링커에서 입력 파일 문제를 해결할 수 없으면 진단 메시지가 생성됩니다.

symdefs 파일은 이전에 생성된 이미지 파일에 대한 전역 심볼 값을 제공하기 위해 이 목록에 포함될 수 있습니다. 자세한 내용은 다른 이미지의 심볼 액세스를 참조하십시오.

입력 파일 목록의 라이브러리를 다음과 같은 방식으로 사용할 수 있습니다.

  • 구성원이 확인되지 않은 비 weak 참조를 확인하는 경우 구성원 추출에 사용되는 라이브러리 목록에 추가할 라이브러리를 지정합니다. 예를 들어, 입력 파일 목록에 mystring.lib를 지정합니다.

    Note

    이 목록의 라이브러리의 구성원은 확인되지 않은 비 weak 참조를 확인하는 경우에만 이미지에 추가됩니다.

  • 라이브러리에서 추출하여 개별 개체로 이미지에 추가할 특정 구성원을 지정합니다. 예를 들어, 입력 파일 목록에 mystring.lib(strcmp.o)를 지정합니다.

링커에서는 이미지에 대한 최적의 표준 함수를 선택하기 위해 적절한 C 및 C++ 라이브러리를 자동으로 검색합니다. --no_scanlib를 사용하여 표준 라이브러리의 자동 검색을 방지할 수 있습니다.

링커에서는 다음 순서로 입력 파일 목록을 처리합니다.

  1. 개체가 이미지에 무조건 추가됩니다.

  2. 패턴을 사용하여 라이브러리에서 선택된 구성원은 개체인 것처럼 무조건 이미지에 추가됩니다. 예를 들어, 다음 명령은 mylib의 모든 a*.o 개체 및 stdio.o를 무조건 추가합니다.

    armlink main.o mylib(stdio.o) mylib(a*.o)
    

    Unix 플랫폼에서는 괄호를 이스케이프해야 할 수 있습니다. 예를 들면 다음과 같습니다.

    armlink main.o mylib\(stdio.o\)
    
  3. 표준 C 또는 C++ 라이브러리는 나중에 모든 나머지 참조를 확인하는 데 사용되는 라이브러리 목록에 추가됩니다.

자세한 내용은 라이브러리 검색, 선택 및 스캔을 참조하십시오.

--libpath pathlist

ARM 표준 C 및 C++ 라이브러리를 검색하는 데 사용되는 경로 목록을 지정합니다.

ARM 라이브러리가 포함된 상위 디렉토리의 기본 경로는 RVCT31LIB 환경 변수로 지정됩니다. 여기서 지정된 경로는 RVCT31LIB를 사용하여 지정된 변수보다 우선합니다.

pathlist는 필요한 ARM 라이브러리를 검색하는 데만 사용되는 경로의 쉼표로 구분되는 목록입니다. 여러 경로 이름을 지정하는 경우 쉼표와 경로 이름 사이에 공백을 포함하지 마십시오(예: path1,path2,path3,...,pathn).

이 목록은 ARM 라이브러리 디렉토리인 armlibcpplib의 상위 디렉토리로 종료되어야 합니다.

Note

이 옵션은 사용자 라이브러리 검색에 영향을 주지 않습니다. 대신 --userlibpath를 사용하십시오.

라이브러리 포함에 대한 자세한 내용은 라이브러리 검색, 선택 및 스캔을 참조하십시오.

--library_type=lib

선택한 관련 라이브러리를 링크 타임에 사용할 수 있도록 합니다.

여기서 lib는 다음 중 하나일 수 있습니다.

standardlib

링크 타임에 전체 RVCT 런타임 라이브러리가 선택되도록 지정합니다. 이것이 기본값입니다.

microlib

링크 타임에 C 마이크로 라이브러리(microlib)가 선택되도록 지정합니다.

Note

라이브러리를 사용하는 데 더욱 특수화된 최적화가 필요한 경우 컴파일러, 어셈블러 또는 링커에서 이 옵션을 사용할 수 있습니다.

다른 --library_type 옵션을 모두 재정의하려면 링커에서 이 옵션을 사용합니다.

자세한 내용은 다음 항목을 참조하십시오.

--[no_]reduce_paths

파일 경로에서 중복 경로 이름 정보를 제거하거나 제거할 수 없도록 합니다. 이 옵션은 Windows 시스템에만 유효합니다.

Windows 시스템에서는 파일 경로에 260자 제한이 있습니다. 절대 이름이 260자 넘게 확장되는 상대 경로 이름이 있는 경우 --reduce_paths 옵션을 사용하여 디렉터리를 해당 인스턴스와 일치시키고 directory/.. 시퀀스를 쌍에서 제거하여 절대 경로 이름 길이를 줄일 수 있습니다.

Note

--reduce_paths 옵션을 사용하여 경로 길이를 최소화하는 것보다는 중첩 수준이 높고 긴 파일 경로를 사용하지 않는 것이 좋습니다.

자세한 내용은 Compiler Reference Guide에서 2-83페이지의 --[no_]reduce_paths를 참조하십시오.

--[no_]scanlib

기본 라이브러리(표준 ARM C 및 C++ 라이브러리)의 스캔을 통해 참조를 확인하거나 확인할 수 없도록 합니다. --scanlib가 기본값입니다.

--userlibpath pathlist

사용자 라이브러리를 검색하는 데 사용되는 경로 목록을 지정합니다.

pathlist는 필요한 라이브러리를 검색하는 데 사용되는 경로의 쉼표로 구분된 목록입니다. 여러 경로 이름을 지정하는 경우 쉼표와 경로 이름 사이에 공백을 포함하지 마십시오(예: path1,path2,path3,...,pathn).

사용자 라이브러리 포함에 대한 자세한 내용은 라이브러리 검색, 선택 및 스캔을 참조하십시오.

Copyright © 2002-2007 ARM Limited. All rights reserved.ARM DUI 0206HK
Non-Confidential