vcpkg for C++: Complete Guide with Examples

Online Python Trainer for Beginners

Learn Python easily without overwhelming theory. Solve practical tasks with automatic checking, get hints in Russian, and write code directly in your browser — no installation required.

Start Course

vcpkg Package Manager for C++: The Complete Guide

Welcome to this in-depth guide on vcpkg — Microsoft's cross-platform package manager for C++. Whether you're a beginner or an experienced developer, this article will take you from the basics to advanced techniques, helping you streamline dependency management in your C++ projects.

1. What Is vcpkg and Why Do You Need It?

vcpkg is an open-source command-line tool that dramatically simplifies managing third-party libraries in C++ projects. If you've ever tried manually downloading, compiling, and configuring libraries like Boost, OpenCV, or SQLite, you know how tedious and error-prone it can be. vcpkg solves this by automating the entire process — from downloading source code and compiling it for your system to integrating with your IDE (Visual Studio, CLion, VS Code, and more).

The core mission of vcpkg is to free developers from "dependency hell." Instead of spending hours hunting for the right library version, resolving conflicts, and configuring include paths and library paths, you simply run one command: vcpkg install [package_name]. vcpkg downloads, compiles, and installs the library along with all its dependencies. This makes development faster, more reliable, and reproducible across different machines.

Key benefits of vcpkg:

  • Cross-platform: Works on Windows, Linux, and macOS.
  • CMake integration: vcpkg provides .cmake files that automatically locate installed libraries, making integration with CMake projects seamless.
  • Version management: Pin specific library versions in your project to ensure build stability.
  • Extensive catalog: Thousands of ready-to-use libraries, from popular to niche.
  • Multi-configuration support: Easily switch between Debug/Release, static and dynamic linking.

2. Installing vcpkg

Installing vcpkg doesn't require pip, npm, or cargo. It's a standalone tool that you clone from the GitHub repository.

Step 1: Clone the Repository

Open a terminal (or command prompt) and run:

git clone https://github.com/microsoft/vcpkg.git

Step 2: Run the Bootstrap Script

Navigate into the vcpkg folder and run the bootstrap script for your operating system:

Windows (PowerShell):

cd vcpkg
.\bootstrap-vcpkg.bat

Linux / macOS:

cd vcpkg
./bootstrap-vcpkg.sh

Once complete, you'll have the vcpkg executable inside the vcpkg folder.

Step 3: (Optional) Add to PATH

For convenience, add the path to the vcpkg folder to your system's PATH environment variable so you can run it from any directory.

3. Quick Start: A Minimal Working Example

Let's install the fmtlib library (a string formatting library) and use it in a simple project.

Step 1: Install the Library

vcpkg install fmt

Step 2: Create a CMake Project

Create a CMakeLists.txt file and a main.cpp file in the same folder.

CMakeLists.txt:

cmake_minimum_required(VERSION 3.10)
project(HelloVcpkg)

# Find and include vcpkg
# This file is generated by vcpkg and automatically                    

Recommendations