오랜만에 복습 할겸.
리눅스에서 라이브러리를 만들어 보려고 합니다.
함수를 라이브러리화 시켜서 공류를 해서 각각에서 쓸수 있도록 하려고 합니다.
나중에 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로 변경하여 이렇게 추가 해주시면 됩니다.
그리고 실행을 해보시면 결과값이 출력이 됩니다.
이상 포스팅을 마치겠습니다^^
'프로그래밍 > C언어' 카테고리의 다른 글
[C언어] 간단한 strlen 만들어보자. (0) | 2021.10.25 |
---|---|
[Static] 정적함수, 정적변수의 예제 (0) | 2021.04.11 |
[C언어] 년도에 맞는 달력 (0) | 2020.12.17 |
[C언어] 구조체 사이즈 구하기 (0) | 2020.12.17 |
[C언어] 간단한 성적 관리 프로그램 (0) | 2020.06.26 |