오늘은 맑음

linux 정적 라이브러리 사용 본문

Linux

linux 정적 라이브러리 사용

자전거 타는 구구 2019. 3. 12. 18:03
반응형

Linux 정적 라이브러리 사용


이전 시간에는 hello.cpp 프로젝트를 compile해 보았습니다. 

하나의 프로젝트를 compile해 보았는데, 실제로는 하나의 프로젝트만 사용하진 않죠?


그래서 이번시간에는 라이브러리를 사용해 보겠습니다. 

정적 라이브러리란 동작을 위한 모든 코드가 실행 바이너리 안에 존재하는 것을 의미합니다.


테스트 해 보기 위해 다음과 같은 프로젝트들을 만들겠습니다.


#hello.cpp


#goodbye.cpp


#greeting.h


#main.cpp


 위와 같이 2개의 함수를 갖는 cpp파일과 이 함수를 정의한 헤더파일, 그리고 함수를 동작시키는 main프로젝트로 나뉘었습니다. 2개의 함수는 각각 main프로젝트에서 include되어 호출될 수 있습니다.


이제 compile을 해볼까요?


gcc -c hello.cpp

gcc -c goodbye.cpp


위의 두 명령어를 실행시키면 hello.o와 goodbye.o의 오브젝트 파일이 생성됩니다.

이제 헤더파일과 오브젝트 파일들을 함께 compile하도록 하겠습니다.


ar rcv staticlib.a hello.o goodbye.o


이름은 staticlib로 지어 위의 명령어를 실행하면 staticlib.a라는 파일이 생성됩니다.


g++ -o greet main.cpp staticlib.a


g++을 이용하여 실행파일의 이름을 greet로 지어 compile을 진행하면 greet이라는 실행파일이 생성됩니다.


./greet


위의 명령어를 실행시키면 



다음과 같은 결과가 출력됩니다.


반응형

'Linux' 카테고리의 다른 글

vim 상하 좌우 분할  (0) 2019.10.18
[Linux] makefile 사용해서 compile하기  (0) 2019.03.13
[Linux] linux에서 gcc(c/c++) compile하기  (0) 2019.03.12
linux 공유 라이브러리  (0) 2017.12.08
정적 라이브러리  (0) 2017.12.08
Comments