본문 바로가기
컴퓨터/리눅스

ar : object file 을 하나로 묶기

by adnoctum 2011. 6. 24.


   만약 a.o 와 b.o 의 두 object 파일을 하나로 묶고자 할 때는 ar 명령어를 사용할 수 있다. 사용법은 다음과 같다.

ar rsv target_file file1 file2 [...]

만약 위와 같은 상황이라면,

ar rsv ab.a a.o b.o


로 하면 a.o 와 b.o 가 ab.a 에 모두 들어가게 된다. 따라서 a.o 와 b.o 를 사용하여 link 를 할 때는

g++ -o test test.cpp ab.a


처럼 a.o 와 b.o 대신 ab.a 를 써주면 된다. 이 때 .o 대신 .a 를 접미사로 붙여주는 것은 이처럼 합해진 object 파일이라는 것을 알리기 위한 관례이다. ar 은 archive 의 약자.



왜 이런 경우가 필요하느냐 하면, 다른 사람이 작성해 놓은 파일들을 하나로 묶어서 link 를 쉽게 하고 싶을 때가 있기 때문이다. 내 경우는 qvalue 를 구하기 위해 qvality 프로그램에서 만들어진 object 파일들을 이용하는데, object file 다소 여러 개 사용되기 때문에 매번 링크할 때마다 일일이 object 파일을 나열해 주기는 다소 번거롭다. 그래서 그렇게 사용되는 object 파일을 하나로 묶어 놓은 후 나중에 링크할 때 그 묶어진 파일 하나만을 사용했다.

다른 사람이 작성해 놓은 source 코드를 조금 수정해서 다른 코드에서 부를 수 있는 함수를 만들 때가 종종 있는데, 이 때 의존성이 간단하면 그냥 하면 되는데 이번의 경우엔 조금 복잡했다. autoconf 인지로 만들어진 Makefile 을 들여다 봐도 막막하다. 그래서 그냥 차라리 source compile 해서 생긴 object 파일들을 죄다 하나로 묶어 버렸다, ㅋ.







'컴퓨터 > 리눅스' 카테고리의 다른 글

삼바 접속이 안될 때 확인할 점들  (0) 2013.05.09
vi 초기 환경 설정 파일  (0) 2013.01.15
/'`'`  (0) 2011.01.04
IP 또는 사용자로 웹페이지 접속 제한하기  (1) 2011.01.03
403 Forbidden  (1) 2011.01.03