[4월 22일 2교시] 공유 라이브러리
공유라이브러리
이름
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. 프로그램 실행