300x250
반응형

오랜만에 복습 할겸.

리눅스에서 라이브러리를 만들어 보려고 합니다.

함수를 라이브러리화 시켜서 공류를 해서 각각에서 쓸수 있도록 하려고 합니다.

나중에 Makefile 이 더 익숙해지면 아마 더 편해 지겠지만

일단 하드하게 직접 만들어 보도록 하겠습니다.~

 


머 이순서는 크게 중요치 않는데요, 저는 일단 헤더파일은 하나 생성 해주었습니다.

func_test.h 파일을 생성해서 내가 정의할 함수를 헤더에서 선언을 해주었습니다.

 


자 그리고, func_test.c 파일을 만들어서

내가 헤더에서 선언한 함수를 정의 하도록 하겠습니다.

이렇게 간단하게 덧셈과 뺄셈으로 정의를 해서

메인 소스에서 func1 func2함수를 사용하도록 할겁니다.

그리고 오브젝트 파일을 먼저 만듭니다.

 


자 사용하기에 앞서 이제 라이브러리를 만들겁니다. 위에  정의한대로 라이브러리를 만들건데요,

위에 보이는 명령어대로 정적 라이브러리를 만듭니다.

옵션에 대해서는 man ar 를 해보시면 더욱 자세히 알 수 있습니다.

그리고, 여기서 중요한것 라이브러리 명이니다. 저는

libfunc.a 라고 했는데요, 내가 만들 라이브러리 명에서 lib 이거는 무조건 해주셔야

만들수가 있습니다. 자 그러면 libfunc.a 라는 라이브러리가 생성이 되었습니다.

 

 

 

그러면 이제 func_main.c 소스를 만들어서 내가 직접 제작한

라이브러리를 사용하도록 하겠습니다.

func_test.c 에 정의된 함수를 사용할건데요, 보시면 func1 func2라는 함수를 사용합니다.

만약에 라이브러리화를 시키지 않았다면 오류가 발생하겠죠??

func_test.c가 선언된 헤더파일을 추가해주시고 프로그래밍 하시면 되겠습니다.

 


자 그리고 실행파일을 만들도록 하겠습니다. 위에 보이는 명령어 되로 실행하시면되겠고,

-L./ -lfunc :현재 경로에서 라이브러리를 추가한다는 것입니다.

만들때는 libfunc.a 라고 했지요? 명령어를 사용하여 최종 만들때는 lib -> l로 변경하여 이렇게 추가 해주시면 됩니다.

 

그리고 실행을 해보시면 결과값이 출력이 됩니다.

 

이상 포스팅을 마치겠습니다^^

728x90

+ Recent posts