컴퓨터 공부/유닉스 시스템 프로그래밍

[4월 22일 2교시] 공유 라이브러리

려리군 2009. 4. 22. 19:53

공유라이브러리


이름

libc.so.[version number].[minor version].[release number]

version에 따라 접미사가 붙는다.

예) libc.so.5.m.r

library name

첫번째 확장자까지를 뜻함.

예) lib.so

soname 

버전 번호까지 표시되어 있다.

soname은 symbolic link로 되어 있고 최신 버젼과 연결되어 있다.

예) libc.so.[version number]


※ 컴파일러는 library 파일을 이용한다.

※ 실행시에는 soname을 이용한다.


ldconfig

soname을 최근 버젼과 symbolic link로 연결되게 한다.


공유라이브러리 제작방법

1. 공유라이브러리 object 파일을 만든다.

gcc -fPIC -c lib?.c

2. 공유라이브러리를 만든다.

gcc -shared -Wl,-soname,lib?.so.0 -o lib?.so.0.0 lib?.o -lc

3. 라이브러리 경로 환경변수를 설정한다. (현재 디렉터리로)

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:.

4. soname을 symbolic link로 설정한다.

/sbin/ldconfig -n .

5. library 파일을 symbolic link로 설정한다.

ln -sf lib?.so.0 lib?.so


일반 프로그램과 공유라이브러리 연결

1. 프로그램 파일 컴파일

gcc -c demo_use.c -o demo_use.o

2. 프로그램 생성

gcc -o demo_use demo_use.o -L. -l?

3. 프로그램 실행