[리눅스 공부 2] 정적라이브러리 사용하기

Posted by [하늘이]
2015. 6. 28. 14:40 IT/Linux
반응형

[참고 : Beginning Linux Program 서적]


컴파일 시 정적 라이브러리를 만들어서 링크 시키는 방법


두개의 파일을 만든다


1. fred.c / bill.c

------------------- fred.c  -------------------

#include <stdio.h>


void fred(int arg)

{

    printf("fred: you passed %d\n", arg);

}


------------------- bill.c -------------------

#include <stdio.h>


void bill(char *arg)

{

    printf("bill: you passed %s\n", arg);

}


2. 두 파일을 컴파일하고, Object 파일을 만든다.
$ gcc -c bill.c fred.c 
$ ls *.o
bill.o  fred.o  


3. Header 파일을 만든다.

------------------- lib.c -------------------

/*

    This is lib.h. It declares the functions fred and bill for users

*/


void bill(char *);

void fred(int);



4. 라이브러리를 만든다 [ar 유틸 사용]

$ ar crv libfoo.a bill.o fred.o

a - bill.o

a - fred.o


5. 생성된 libfoo.a 라이브러리를 사용할 수 있도록 등록한다
$ ranlib libfoo.a 

6. 라이브러리를 사용하는 C파일을 만든다
------------------- program.c -------------------

#include <stdlib.h>

#include "lib.h"


int main()

{

    bill("Hello World");

    exit(0);

}


7. 컴파일하고 실행하자
$ gcc -o program program.o libfoo.a 

$ ./program
bill: you passed Hello World



반응형