GCC에서 공유 라이브러리(Shared Library
)를 생성하고 사용할 때의 기본적인 방법을 소개합니다.
공유 라이브러리 생성하기
먼저, 공유 라이브러리를 만들기 위해 소스 파일을 준비합니다.
예를 들어, mylib.c
라는 파일이 있다고 가정하겠습니다.
이 파일을 컴파일하여 공유 라이브러리를 생성하려면 다음 명령어를 사용합니다:
bash
gcc -shared -fPIC -o libmylib.so mylib.c
여기서 -shared
옵션은 공유 라이브러리를 생성하겠다는 의미입니다.
-fPIC
옵션은 위치 독립 코드(Position Independent Code
)를 생성하도록 지시합니다.
리눅스에서 이렇게 생성된 libmylib.so
파일이 공유 라이브러리입니다.
공유 라이브러리 사용하기
이제 이 공유 라이브러리를 사용하는 프로그램을 작성해보겠습니다.
main.c
라는 파일에 다음과 같은 코드가 있다고 가정합니다:
c
#include <stdio.h>
void my_function();
int main() {
my_function();
return 0;
}
이 프로그램을 컴파일할 때, 앞서 생성한 libmylib.so
를 링크해야 합니다.
이를 위해 다음 명령어를 사용합니다:
gcc -o myprogram main.c -L. -lmylib
여기서 -L.
옵션은 현재 디렉토리.
를 라이브러리 검색 경로에 추가하겠다는 의미입니다.
-l
mylib
는 리눅스 환경에서 lib
mylib
.so
라이브러리를 링크하겠다는 뜻입니다.
실행 시 주의사항
프로그램을 실행할 때, 시스템이 공유 라이브러리를 찾을 수 있도록 환경 변수를 설정해야 합니다.
이를 위해 LD_LIBRARY_PATH
환경 변수에 라이브러리가 위치한 디렉토리를 추가합니다:
bash
export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH
이제 myprogram
을 실행하면 libmylib.so
에 정의된 my_function
이 호출됩니다.
이러한 방법으로 GCC를 사용하여 공유 라이브러리를 생성하고 활용할 수 있습니다.
'C C++' 카테고리의 다른 글
Google ctemplate (0) | 2009.07.08 |
---|---|
C++ 함수 가림 현상(name hiding)과 using 키워드 활용하기 (0) | 2009.03.08 |
Windows XP 에서 Cygwin 구성 - (2) (0) | 2009.02.19 |
C++ 자료형의 최대/최소값 (0) | 2009.02.16 |
History of C/Unix/C++/Linux/gcc/glibc (0) | 2009.01.13 |