티스토리 뷰
ar 명령어를 사용하여 정적라이브러리에 대해서 간단히 알아보겠습니다.
man 명령어로 확인해보니 library archive를 만들거나 관리하는 utility라고 되어 있습니다. archive가 만들어진 후에는 새로운 파일을 추가하거나, 존재하는 파일을 추출/삭제/대체할 수 있다고 합니다.
그럼 간단한 예제를 통해서 확인해 볼까요.
곱셈을 하는 mul.c 파일, 나눗셈을 하는 div.c 파일이 있으며, 이를 사용하는 main.c 파일이 있습니다.
컴파일하여 object 파일을 생성합니다.
$ gcc -c div.c $ gcc -c mul.c
그리고 새성된 object 파일을 사용하여 Library를 생성합니다.
$ ar -cr libdiv.a div.o $ ar -cr libmul.a mul.o
만들어진 Library를 살펴봅니다.
그럼 Library를 사용하여 main.c 파일을 컴파일해 보겠습니다.
$ gcc -o main main.c -L./lib -ldiv -lmul
main을 실행하니 간단한 계산 결과가 출력되네요.
이미 만들어진 object 파일을 삭제후 Library로부터 추출해 봅니다.
$ rm *.o $ ar -x libdiv.a $ ar -x libmul.a
object 파일이 다시 만들어졌습니다.
그럼 library 파일을 하나로 만들어보겠습니다.
$ ar -cr libcalc.a div.o mul.o
libcalc.a 파일이 만들어졌습니다.
앞으로는 main.c 파일을 컴파일할때, 생성된 libcalc.a 파일만 넣어주면 되겠습니다.
추가로 file 명령어를 사용해서 몇비트 머신에서 컴파일이 되었는지 확인할 수 있습니다. 잘모르는 Library를 사용하여 빌드하는 경우에, Library를 찾지 못한다면 32비트 또는 64비트에서 컴파일되었는지 확인이 필요할 수도 있습니다.
이제 Library에서 object 파일을 추출하거나 새로운 파일을 넣을때 유용하게 사용할 수 있을 것 같습니다.
지금까지 ar 명령어에 대해서 간단히 살펴보았습니다.
'Software > The others' 카테고리의 다른 글
하드커널 Odroid-T (0) | 2021.09.06 |
---|---|
마이크로비전 MVV310 (0) | 2021.09.06 |
- Total
- Today
- Yesterday
- 안전운전할인
- 안드로이 드스튜디오
- RASPBIAN
- raspberrypi
- Python
- VersionControlSystem
- 안드로이드
- AndroidStudio
- Exynos4210
- 미러링크
- 안드로이드스튜디오
- android
- git
- 파이썬
- SIGSEGV
- svn
- MirrorLink
- Subversion
- 라즈비안
- 센스X180
- RTL8188EUS
- MVV310
- HAMX
- 오토사
- 라즈베리파이
- TS-WIFI24
- AUTOSAR
- 파이썬철학
- ipad
- 버전관리시스템
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |