$ gcc -c test.c
$ ar rc libtest.a test.o
공유라이브러리
$ gcc -fPIC -c test.c
$ gcc -shared -W1,-soname,libtest.so.1 -o libtest.so.1.0.1 test.o
$ cp libtest.so.1.0.1 /usr/local/lib
$ ln -s /usr/local/lib/libtest.so.1.0.1 /usr/local/lib/libtest.so
공유라이버리 사용
$ gcc -o mysoftware mysoftware.c -L/usr/local/lib -l
------ 아래는 공유라이브러리 사용 예 ------
/*-------------------shared_test.h-------------------*/
int lib_test(void);
/*-------------------shared_test.c-------------------*/
#include <stdio.h>
#include "shared_test.h"
int g_counter=0;
int lib_test(void)
{
int ret=++g_counter;
return ret;
}
/*-------------------test1.c-------------------*/
#include <stdio.h>
#include "shared_test.h"
int main(void)
{
sleep(5);
while(1)
{
printf("TEST1: %d\n", lib_test());
sleep(5);
}
return 0;
}
/*-------------------test2.c-------------------*/
#include <stdio.h>
#include "shared_test.h"
int main(void)
{
sleep(5);
while(1)
{
printf("TEST2: %d\n", lib_test());
sleep(5);
}
return 0;
}
------------- MAKEFILE -----------------
all: clean
mkdir -p obj
gcc -fPIC -c shared_test.c -o obj/shared_test.o
gcc -shared -W1,-soname,libtest.so.1 -o obj/libtest.so obj/shared_test.o
gcc -o obj/test1 test1.c -L./obj -ltest
gcc -o obj/test2 test2.c -L./obj -ltest
clean:
rm -rf obj/*