vcpkg

Un administrador de paquetes para C y C++.


Descripción

vcpkg es un administrador de paquetes de C y C++ gratuito y de código abierto, diseñado para abordar las dificultades específicas de la gestión de bibliotecas de estos lenguajes. Es mantenido por Microsoft y voluntarios de la comunidad C++. Compatible con Windows, macOS y Linux. Aunque puede considerarse, en esencia, una herramienta para C++, pues está escrita en C++ y scripts de CMake.

Para más detalles, consultar la documentación del producto 1.


macOS

La siguiente descripción corresponde al uso de vcpkg en macOS «Tahoe» con Visual Studio Code. La documentación de vcpkg provee detalles muy específicos sobre el uso de este gestor de paquetes en varios entornos, incluido Visual Studio Code2, aunque esta se enfoca en Windows. Aquí se ofrece una reinterpretación de estas acciones para macOS.

Instalación

Por «instalación» entiéndase «descarga de scripts y su complementación», que en esencia se lleva a cabo con lo siguiente:

git clone https://github.com/microsoft/vcpkg.git
cd vcpkg && ./bootstrap-vcpkg.sh

Por lo tanto, vcpkg quedará «instalado» en la ruta donde se clonó el código y se descargaron los «ports» mediante los scripts de calzado (205 MB al 2026.02.22).

Adicionalmente, VS Code necesitará las extensiones C++ Extension y CMake Tools Extensions, el que se cree la referencia a la instalación y se agregue a la variable PATH.

export VCPKG_ROOT=/c/path/to/vcpkg
export PATH=$PATH:$VCPKG_ROOT

Así como Ninja, que puede instalarse con Homebrew:

brew install ninja

Uso

Para ejemplificar el uso de este administrador de paquetes:

1. Directorio

Se crea un directorio para el proyecto:

mkdir HelloWorld
cd HelloWorld

2. Se genera un manifiesto

vcpkg new --application

3. Se agregan paquetes

vcpkg add port fmt

4. Se crean los archivos del proyecto

En la raíz del proyecto se crea un archivo llamado CMakeLists.txt con el contenido:


cmake_minimum_required(VERSION 3.10)

project(HelloWorld)

find_package(fmt CONFIG REQUIRED)

add_executable(HelloWorld helloworld.cpp)

target_link_libraries(HelloWorld PRIVATE fmt::fmt)

Así como los programas, para este ejemplo helloworld.cpp

#include <fmt/core.h>

int main()
{
    fmt::print("Hello World!\n");
    return 0;
}

Se crea el archivo CMakePresets.json

{
"version": 2,
"configurePresets": [
{
"name": "vcpkg",
"generator": "Ninja",
"binaryDir": "${sourceDir}/build",
"cacheVariables": {
"CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake"
}
}
]
}

Junto con CMakeUserPresets.json

{
"version": 2,
"configurePresets": [
{
"name": "default",
"inherits": "vcpkg",
"environment": {
"VCPKG_ROOT": "<path to vcpkg>"
}
}
]
}

Referencias

  1. «vcpkg Overview«, Microsoft, web:Updated: 2024.08.08; visited: 2026.02.22. URL: https://learn.microsoft.com/en-us/vcpkg/get_started/overview.
  2. «Tutorial: Install and use packages with CMake in Visual Studio Code«, Microsoft, web. Updated: 2024.09.25; visited: 2026.02.22. URL: https://learn.microsoft.com/en-us/vcpkg/get_started/get-started-vscode

© Todos los derechos reservados.
Dr. Eduardo René Rodríguez Ávila

Creación: 2026.02.21
Última actualización: 2026.02.22

El contenido de este sitio puede ser copiado y reproducido libremente, siempre que no se altere y se cite su origen. Marcas y productos registrados se citan por referencia, sin fines de lucro ni de dolo. Todas las opiniones son a título personal del o de los autores de estas y, salvo que se exprese de otro modo, deben considerarse como registro y expresión de la experiencia de uso de aquello de lo que se trata. Para conocer más sobre la posición de privacidad y responsabilidad respecto de lo que se presenta en este sitio web y de cómo se ha obtenido, consulte la declaración correspondiente.