2.3.1. 현재 위치

기본적으로 ARM 컴파일러는 Berkeley UNIX 검색 규칙을 사용하기 때문에 현재 위치의 상대 경로에서 소스 파일 및 #include 헤더 파일이 검색됩니다. 현재 위치는 컴파일러에서 현재 처리 중인 소스 또는 헤더 파일이 포함된 디렉토리입니다.

검색 경로 요소의 상대 경로에 파일이 있는 경우 이 파일이 있는 디렉토리가 새로운 현재 위치가 됩니다. 컴파일러에서 해당 파일의 처리가 완료되면 이전의 현재 위치가 복원됩니다. 각 인스턴트에 중첩된 #include 지시문의 스택에 해당하는 현재 위치의 스택이 있습니다. 예를 들어 현재 위치가 include 디렉토리 ...\include이고 컴파일러에서 include 파일 sys\defs.h를 찾고 있는 경우 ...\include\sys\defs.h(있을 경우)가 검색됩니다.

컴파일러에서 defs.h를 처리하기 시작하면 현재 위치는 ...\include\sys가 됩니다. 절대 경로 이름으로 지정되지 않은 defs.h에 포함된 모든 파일은 ...\include\sys의 상대 경로로 검색됩니다.

컴파일러에서 defs.h 처리를 완료하면 원래의 현재 위치 ...\include가 복원됩니다.

컴파일러 옵션 --kandr_include를 지정하여 현재 위치의 스택을 사용하지 않도록 설정할 수 있습니다. 이 옵션을 지정하면 Kernighan 및 Ritchie가 원래 The C Programming Language에서 설명한 검색 규칙이 컴파일러에서 사용됩니다. 이 규칙에서는 루트에 있지 않은 각 사용자 #include가 컴파일되는 소스 파일이 있는 디렉토리의 상대 경로에서 검색됩니다. 자세한 내용은 Compiler Reference Guide에서 2-57페이지의 --kandr_include를 참조하십시오.

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