C++ 라이브러리
작성 및 사용법: 단계별 가이드
C++에서 라이브러리를 생성하고 사용하는 것은 모듈식이며 재사용 가능한 코드를 구축하려는 개발자에게 필수적인 기술입니다. 이 블로그 게시물은 C++ 라이브러리를 작성하고 컴파일하며 통합하는 과정을 안내하며, 특히 Linux 및 Windows 환경을 위한 공유 라이브러리에 중점을 둡니다. 이 주제를 쉽게 이해하도록 돕는 간단한 예제와 명확한 설명을 계속 읽어보세요.
C++ 라이브러리 이해하기
C++ 라이브러리란?
C++ 라이브러리는 프로젝트에 포함시켜 코드 작성 없이 기능을 재사용할 수 있는 미리 컴파일된 코드의 모음입니다. C++에는 두 가지 기본 유형의 라이브러리가 있습니다:
- 정적 라이브러리(Static Libraries): 이들은 컴파일 시간에 링크되어 실행 파일의 일부가 됩니다. Linux에서는 일반적으로
.a
확장자를 가지고 Windows에서는.lib
를 가집니다. - 동적 라이브러리(Dynamic Libraries): 이들은 실행 시간에 링크됩니다. Linux에서는
.so
확장자를 가지며, Windows의 해당 파일은.dll
입니다.
이 게시물에서는 동적 라이브러리를 생성하고 사용하는 데 중점을 두겠습니다.
C++에서 동적 라이브러리 생성하기
1단계: 라이브러리 코드 작성하기
간단한 예제부터 시작하겠습니다. 우리는 메시지를 출력하는 함수가 포함된 라이브러리를 생성하고자 합니다.
-
헤더 파일 생성하기 (
t.h
):void f();
-
소스 파일 생성하기 (
t.cc
):#include <iostream> #include "t.h" void f() { std::cout << "OH HAI. I'M F." << std::endl; }
2단계: 코드를 공유 라이브러리로 컴파일하기
이제 라이브러리 코드가 준비되었으므로, 이를 공유 라이브러리로 컴파일할 것입니다. 다음과 같이 진행하세요:
-
소스 코드를 오브젝트 코드로 컴파일하기:
g++ -fpic -c t.cc # t.o 생성
-
공유 라이브러리 생성하기:
g++ -shared -o t.so t.o # t.so 생성
3단계: 주요 프로그램에서 라이브러리 사용하기
이제 우리가 방금 생성한 라이브러리를 사용할 주요 애플리케이션을 만듭니다.
- 주요 파일 생성하기 (
r.cc
):#include "t.h" int main() { f(); // 라이브러리에서 함수 호출 return 0; }
4단계: 애플리케이션을 라이브러리와 함께 컴파일하고 링크하기
주요 프로그램과 공유 라이브러리를 함께 컴파일하려면 다음 명령어를 사용하세요:
g++ r.cc t.so -o mainApp
5단계: 라이브러리 경로 설정하기 (Linux 전용)
Linux에서는 프로그램이 실행 시간에 공유 라이브러리를 찾을 수 있도록 해야 합니다. 현재 디렉토리를 포함하기 위해 LD_LIBRARY_PATH
를 설정할 수 있습니다:
export LD_LIBRARY_PATH="."
공유 라이브러리를 전역 라이브러리 디렉토리에 설치하는 경우 이 단계를 수행할 필요는 없습니다.
마지막 단계: 애플리케이션 실행하기
컴파일이 완료되면 애플리케이션을 실행할 수 있습니다:
./mainApp
출력 결과는 다음과 같을 것입니다:
OH HAI. I'M F.
주요 단계 요약
- 라이브러리 함수에 대한 헤더 파일을 작성하세요.
- 소스 파일에 구현을 작성하세요.
- 소스 파일을 오브젝트 파일로 컴파일하세요.
- 오브젝트 파일로부터 공유 라이브러리를 생성하세요.
- 주요 애플리케이션을 작성하고 라이브러리와 링크하세요.
- 애플리케이션이 실행 시간에 라이브러리를 찾을 수 있도록 하세요.
이 단계를 따르면 성공적으로 자신의 C++ 라이브러리를 생성하고 활용할 수 있으며, 체계적이고 재사용 가능한 코드의 길을 열 수 있습니다. 이 기술은 C++ 프로그래밍 관행을 향상시키려는 모든 개발자에게 매우 귀중합니다.
이제 C++에서 자신의 동적 라이브러리를 탐색하고 생성할 수 있는 준비가 되었습니다. 즐거운 코딩 되세요!