C++ 패키지 매니저 총정리 (vcpkg, Conan, Spack, NuGet)

gigyesik·2025년 7월 8일

developer-roadmap-c++

목록 보기
19/20

C++ 패키지 매니저 총정리 (vcpkg, Conan, Spack, NuGet)

C++은 강력한 언어지만, 다른 언어들에 비해 종속성(Dependency) 관리가 복잡한 편이다. 이를 해결해주는 도구가 바로 패키지 매니저(Package Manager) 이다. 이 글에서는 C++ 생태계에서 널리 사용되는 패키지 매니저들을 정리해 본다.


✅ 패키지 매니저란?

패키지 매니저는 외부 라이브러리 설치, 업그레이드, 제거, 종속성 관리 등을 자동으로 처리해주는 도구다. C++에서는 아래와 같은 패키지 매니저들이 사용된다.

  • Conan
  • vcpkg
  • Spack
  • NuGet

1. vcpkg – Microsoft의 공식 패키지 매니저

vcpkg는 Microsoft가 개발한 오픈소스 C/C++용 패키지 매니저다. Windows뿐 아니라 Linux, macOS도 지원하며, Visual Studio와 자연스럽게 연동된다는 점이 큰 장점이다.

📦 설치 방법

git clone https://github.com/microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh  # macOS/Linux
.\bootstrap-vcpkg.bat # Windows

💡 기본 명령어

vcpkg search boost           # 패키지 검색
vcpkg install boost          # 패키지 설치
vcpkg remove boost           # 패키지 제거
vcpkg list                   # 설치된 패키지 확인
vcpkg integrate install      # VS 연동 (Windows)

2. Conan – 강력한 C++ 패키지 생태계

Conan은 C/C++을 위한 분산형 패키지 매니저다. 멀티 플랫폼 지원은 물론이고, CMake, MSBuild 등 다양한 빌드 시스템과 통합된다. pip으로 쉽게 설치할 수 있고, 자체적으로 패키지를 만들어 배포할 수 있다.

📦 설치 방법

pip install conan

💡 기본 사용법

# conanfile.txt
[requires]
boost/1.75.0

[generators]
cmake
mkdir build && cd build
conan install ..
cmake .. -DCMAKE_BUILD_TYPE=Release
cmake --build .

🛠 패키지 만들기 예시

from conans import ConanFile, CMake

class MyLibraryConan(ConanFile):
    name = "MyLibrary"
    version = "0.1"
    generators = "cmake"
    settings = "os", "compiler", "build_type", "arch"

    def build(self):
        cmake = CMake(self)
        cmake.configure(source_folder="src")
        cmake.build()

conan create . username/channel

3. Spack – HPC를 위한 패키지 매니저

Spack은 고성능 컴퓨팅(HPC)을 겨냥한 패키지 매니저로, 여러 버전과 아키텍처를 동시에 관리할 수 있다. 과학 및 엔지니어링 소프트웨어 설치에 적합하다.

📦 설치 및 초기화

git clone https://github.com/spack/spack.git
cd spack
. share/spack/setup-env.sh

💡 기본 사용법

spack install hdf5
spack load hdf5
spack find
spack uninstall hdf5

4. NuGet – C++/CLI 및 Windows C++ 지원

NuGet은 .NET 생태계를 위한 패키지 매니저지만, PackageReference를 통해 C++ 프로젝트에서도 사용할 수 있다. 주로 Windows, Visual Studio 환경에서 유용하다.

💡 사용법

Visual Studio에서:

Tools > NuGet Package Manager > Manage NuGet Packages for Solution...

또는 vcxproj 파일에서 직접 명시:

<PackageReference Include="PackageName" Version="1.0.0" />

CLI에서도 사용 가능:

nuget install PackageName
nuget update PackageName

🔚 마무리

C++은 전통적으로 빌드와 종속성 관리가 까다로웠지만, 요즘은 다양한 패키지 매니저가 등장하며 많이 개선되었다. 운영체제, IDE, 팀의 개발 환경에 따라 적절한 도구를 선택하여 효율적인 개발을 해보자.

profile
Server Dev

0개의 댓글