Compartir a través de


Tutorial: Instalación y uso de paquetes con CMake en Visual Studio

En este tutorial se muestra cómo crear un programa de "Hola mundo" de C++ que usa la fmt biblioteca con CMake, vcpkg y Visual Studio. Instalará dependencias, configurará, compilará y ejecutará una aplicación sencilla.

Requisitos previos

1 - Configurar vcpkg

  1. Clonación del repositorio

    El primer paso es clonar el repositorio vcpkg desde GitHub. El repositorio contiene scripts para adquirir el ejecutable vcpkg y un registro de bibliotecas de código abierto mantenidas mantenidas por la comunidad de vcpkg. Para hacerlo, ejecute lo siguiente:

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

    El registro mantenido de vcpkg es un conjunto de más de 2000 bibliotecas de código abierto. Las canalizaciones de integración continua de vcpkg han validado estas bibliotecas para trabajar conjuntamente. Aunque el repositorio vcpkg no contiene el código fuente de estas bibliotecas, contiene recetas y metadatos para compilarlos e instalarlos en el sistema.

  2. Ejecución del script de arranque

    Ahora que ha clonado el repositorio vcpkg, vaya al vcpkg directorio y ejecute el script de arranque:

    cd vcpkg && bootstrap-vcpkg.bat
    
    cd vcpkg; .\bootstrap-vcpkg.bat
    
    cd vcpkg && ./bootstrap-vcpkg.sh
    

    El script de arranque realiza comprobaciones de requisitos previos y descarga el ejecutable vcpkg.

    Eso es todo. vcpkg está configurado y listo para usarse.

2- Configuración del proyecto de Visual Studio

  1. Creación del proyecto de Visual Studio

    • Creación de un proyecto en Visual Studio mediante la plantilla "Proyecto de CMake"

    crear un nuevo proyecto de CMake

    Captura de pantalla de la interfaz de usuario de Visual Studio para mostrar cómo crear un nuevo proyecto de CMake en Visual Studio

    • Asigne al proyecto el nombre "helloworld"
    • Active la casilla "Colocar solución y proyecto en el mismo directorio".
    • Haga clic en el botón "Crear".

    asignar un nombre al proyecto de CMake

    Captura de pantalla de la interfaz de usuario de Visual Studio para asignar un nombre al proyecto de CMake y hacer clic en el botón "crear".

  2. Configure la variable de entorno VCPKG_ROOT.

    Nota:

    Establecer variables de entorno de esta manera solo afecta a la sesión de terminal actual. Para realizar estos cambios permanentes en todas las sesiones, establézcalos en el panel Variables de entorno del sistema de Windows.

    Abra la ventana integrada de PowerShell para desarrolladores en Visual Studio.

    apertura de PowerShell para desarrolladores integrados

    Captura de pantalla de la interfaz de usuario de Visual Studio para la ventana de desarrollador integrada de PowerShell

    Ejecute los comandos siguientes:

    $env:VCPKG_ROOT="C:\path\to\vcpkg"
    $env:PATH="$env:VCPKG_ROOT;$env:PATH"
    

    configuración de las variables de entorno

    Captura de pantalla de la interfaz de usuario de Visual Studio para la ventana integrada para desarrolladores de PowerShell en la que se muestra cómo configurar VCPKG_ROOT y agregarla a PATH.

    Abra el símbolo del sistema para desarrolladores en Visual Studio.

    abrir el símbolo del sistema para desarrolladores de Visual Studio.

    Captura de pantalla de la interfaz de usuario de Visual Studio para el símbolo del sistema para desarrolladores.

    Ejecute los comandos siguientes:

    set "VCPKG_ROOT=C:\path\to\vcpkg"
    set PATH=%VCPKG_ROOT%;%PATH%
    

    configuración de las variables de entorno

    Captura de pantalla del símbolo del sistema para desarrolladores de Visual Studio que muestra cómo configurar VCPKG_ROOT y agregarlo a PATH.

    La configuración VCPKG_ROOT ayuda a Visual Studio a localizar la instancia de vcpkg. Agregarlo a PATH garantiza que puede ejecutar comandos vcpkg directamente desde el shell.

  3. Genere un archivo de manifiesto y agregue dependencias.

    Ejecute el siguiente comando para crear un archivo de manifiesto vcpkg (vcpkg.json):

    vcpkg new --application
    

    El vcpkg new comando agrega un vcpkg.json archivo y un vcpkg-configuration.json archivo en el directorio del proyecto.

    Agregue el fmt paquete como dependencia:

    vcpkg add port fmt
    

    Ahora vcpkg.json debe contener:

    {
        "dependencies": [
            "fmt"
        ]
    }
    

    Este es el archivo de manifiesto. vcpkg lee el archivo de manifiesto para obtener información sobre qué dependencias instalar e integrar con CMake para proporcionar las dependencias necesarias para el proyecto.

    El archivo generado vcpkg-configuration.json presenta una línea base que coloca restricciones de versión mínimas en las dependencias del proyecto. La modificación de este archivo está fuera del ámbito de este tutorial. Aunque no es aplicable en este tutorial, se recomienda mantener el archivo bajo control de código fuente para garantizar la vcpkg-configuration.json coherencia de las versiones en distintos entornos de desarrollo.

3 - Configurar los archivos del proyecto

  1. Modifique el archivo helloworld.cpp.

    Reemplace el contenido de helloworld.cpp por el código siguiente:

    #include <fmt/core.h>
    
    int main()
    {
        fmt::print("Hello World!\n");
        return 0;
    }
    

    Este archivo de origen incluye el <fmt/core.h> encabezado que forma parte de la fmt biblioteca. La main() función llama fmt::print() a para generar el mensaje "Hola mundo!" en la consola.

  2. Configure el CMakePresets.json archivo.

    CMake puede vincular automáticamente las bibliotecas instaladas por vcpkg cuando CMAKE_TOOLCHAIN_FILE se establece para usar la cadena de herramientas personalizada de vcpkg. Esto se puede completar mediante archivos preestablecidos de CMake.

    Modifique CMakePresets.json para que coincida con el contenido siguiente:

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

    Cree CMakeUserPresets.json con el siguiente contenido:

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

    El CMakePresets.json archivo contiene un único valor preestablecido denominado "vcpkg", que establece la CMAKE_TOOLCHAIN_FILE variable . El CMakeUserPresets.json archivo establece la VCPKG_ROOT variable de entorno para que apunte a la ruta de acceso absoluta que contiene la instalación local de vcpkg. Se recomienda no proteger CMakeUserPresets.json los sistemas de control de versiones.

  3. Edite el archivo CMakeLists.txt.

    Reemplaza el contenido del archivo CMakeLists.txt por el código siguiente:

    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)
    

    Ahora, vamos a desglosar lo que hace cada línea del CMakeLists.txt archivo:

    • cmake_minimum_required(VERSION 3.10): especifica que la versión mínima de CMake necesaria para compilar el proyecto es 3.10. Si la versión de CMake instalada en el sistema es inferior a esta, se produce un error en la compilación.
    • project(HelloWorld): establece el nombre del proyecto en "HelloWorld".
    • find_package(fmt CONFIG REQUIRED): busca la fmt biblioteca mediante su archivo de configuración de CMake. La REQUIRED palabra clave garantiza que se genere un error si no se encuentra el paquete.
    • add_executable(HelloWorld helloworld.cpp): agrega un destino ejecutable denominado "HelloWorld", compilado a partir del archivo helloworld.cppde origen .
    • target_link_libraries(HelloWorld PRIVATE fmt::fmt): especifica que el HelloWorld ejecutable debe vincularse con la fmt biblioteca. La PRIVATE palabra clave indica que fmt solo es necesario para compilar HelloWorld y no debe propagarse a otros proyectos dependientes.

4- Compilación y ejecución del proyecto

  1. Compila el proyecto.

    Presione Ctrl+Shift+B para compilar el proyecto en Visual Studio.

  2. Ejecute la aplicación.

    Por último, ejecute el archivo ejecutable:

    Ejecución del archivo ejecutable

    Captura de pantalla de la interfaz de usuario de Visual Studio para ejecutar el ejecutable.

    Deberías ver la salida:

    Salida del programa

    Captura de pantalla de las salidas del programa: "Hola mundo!"

Pasos siguientes

Para más información sobre , consulte nuestra documentación de vcpkg.jsonreferencia: