Ar
(증강현실의 약자 AR을 찾는다면 Augmented reality항목 참조)
Archive, 정적 라이브러리를 위한 명령행 도구.
Flags
-
d
: 아카이브 모듈을 삭제. 삭제할 파일이 없다면 아카이브를 건들지 않음. -
t
: 아카이브에 있는 파일 리스트 출력. -
v
: 자세한 내용을 보여주는 verbose 모드. 이 옵션을 이용하면 파일크기나 갱신시각 등의 정보도 출력. -
x
: 아카이브에서 오브젝트 파일 추출.v
옵션을 지정하면 추출한 파일에 대한 파일명 출력. -
r
: 새로운 오브젝트 파일이면 추가, 기존 파일이면 치환함. -
c
: libhoge.a 파일이 존재하지 않아도 경고 메시지를 출력하지 않음. -
u
: 오브젝트 파일의 타임스탬프를 비교해 새로운 파일일 경우에만 치환함. -
s
: ranlib과 마찬가지로 아카이브 인덱스를 생성. 아카이브 인덱스를 생성하지 않으면 링크 속도가 느려지고, 시스템 환경에 따라서 에러가 발생. 아카이브 인덱스는 nm -s로 조회할 수 있다.
Example
-
ar cr [라이브러리 이름] [오브젝트 파일들]
ar rcus [라이브러리 이름] [오브젝트 파일들]
- 아카이브를 생성.
-
ar ds [라이브러리 이름] [오브젝트 파일들]
- 기존 아카이브 파일에 오브젝트 제거.
-
ar tv [라이브러리 이름]
- 아카이브의 내용을 조회.
-
ar xv [라이브러리 이름]
- 아카이브에서 파일을 추출.
Merge archive
여러 개의 정적 아카이브 파일을 병합하고싶을 경우 아래와 같이 진행하면 된다.
-
ar x {라이브러리}
를 사용하여 Object파일을 분할한다. -
ar cr {결과 라이브러리} *.o
를 사용하여 전체 Object파일을 병합한다. -
ranlib {결과 라이브러리}
를 사용하여 인덱스 테이블을 작성한다.
또는, libtool을 사용하는 방법도 있다.
Favorite site
- Hack #17: ar - 정적 라이브러리 다루기
- ar 사용법 : archive 파일 생성
- binutils: 정적 라이브러리의 구조 - ar, ranlib 1
- 정적 라이브러리와 ar, ranlib, nm
References
-
Binutils-static_library-ar,ranlib.pdf ↩