
C++ 프로젝트를 하다 보면 기본 문법만으로는 해결이 어려운 상황이 자주 발생한다. 이때 외부 라이브러리를 활용하면 개발 시간을 단축하고, 신뢰성 있는 기능을 손쉽게 사용할 수 있다. C++ 라이브러리는 정적(static)과 동적(dynamic) 두 가지 방식으로 사용할 수 있으며, 각 방식은 용도에 따라 선택하면 된다.
정적 라이브러리는 컴파일 시점에 프로그램에 통합된다. 실행 파일 하나만으로 배포가 가능하다는 장점이 있다.
g++ -c sourcefile.cpp -o objectfile.o
ar rcs libmystaticlibrary.a objectfile.o
g++ main.cpp -o myprogram -L/path/to/your/library/ -lmystaticlibrary
동적 라이브러리는 실행 중에 로드된다. 실행 파일의 크기를 줄일 수 있고, 라이브러리를 업데이트하면 전체 프로그램을 다시 컴파일하지 않아도 된다는 장점이 있다.
g++ -c -fPIC sourcefile.cpp -o objectfile.o
g++ -shared -o libmydynamiclibrary.so objectfile.o
g++ main.cpp -o myprogram -L/path/to/your/library/ -lmydynamiclibrary
export LD_LIBRARY_PATH=/path/to/your/library:$LD_LIBRARY_PATH
외부 라이브러리를 사용할 때는 해당 라이브러리의 라이선스를 반드시 확인해야 한다.
-사용, 수정, 배포 모두 자유롭다.
#include <iostream> // 표준 라이브러리
#include "myHeader.h" // 사용자 정의 헤더
#include "mySourceFile.cpp"
C++에는 다양한 라이브러리가 존재하며, 각 목적에 맞게 선택할 수 있다.
C++에서는 테스트, GUI, 디버깅 등을 위한 프레임워크도 활발하게 사용된다.
C++ 프로젝트에서 라이브러리와 프레임워크를 적절히 활용하면 훨씬 더 생산적이고 안정적인 코드를 작성할 수 있다.
처음에는 정적/동적 라이브러리의 차이를 익히고, 자주 쓰이는 라이브러리부터 익혀 나가면 좋다.
라이선스를 항상 체크하고, 프로젝트 목적에 따라 적절한 도구를 선택하자.