En este artículo (y el video adjunto), veremos la instalación, configuración y uso de vcpkg, un administrador de paquetes para el desarrollo de Windows C++. Al iniciar un proyecto de C++, uno de los mayores puntos débiles es instalar y configurar bibliotecas externas, un problema que vcpkg resuelve en su mayoría y hace que la vida típica de los desarrolladores de C++ sea una experiencia mucho más placentera.
Antes de que empieces
Antes de que pueda comenzar a usar vcpkg, hay algunas cosas que debe tener instaladas:
- git
- estudio visual 2015 o posterior (incluyendo Herramientas de construcción), las versiones gratuitas/comunitarias están bien.
- Windows 7 o posterior
Cabe señalar que vcpkg puede funcionar con Visual Studio Code. Además, vcpkg también se puede usar en Linux y MacOS, pero en este tutorial nos centraremos en el desarrollo de Windows.
Independientemente de si elige Visual Studio o Build Tools, hay algunas funciones que debe asegurarse de instalar, específicamente compatibilidad con C++:
A continuación, querrá asegurarse de que las herramientas de compilación de MSVC y una versión del SDK de Windows 10 estén instaladas.
Ahora es el momento de instalar vcpkg. Comience creando un símbolo del sistema con permisos administrativos o seleccione Windows Key + X, luego seleccione Windows PowerShell (Administrador).
A continuación, vamos a necesitar elegir un directorio para instalar vcpkg. Estos archivos permanecerán instalados una vez que hayamos terminado, así que elija una ubicación con la que se sienta cómodo pero que no requiera permisos especiales, como Archivos de programa. Elegí c:dev en este ejemplo. Ejecute los comandos:
cd c:dev git clone https://github.com/microsoft/vcpkg cd vcpkg bootstrap-vcpkg.bat vcpkg integrate install
Eso es todo, ahora estamos listos para comenzar a usar vcpkg. Primero necesita encontrar un paquete para usar, de los cuales hay @ 2000 configurados en vcpkg en este momento. Comencemos por encontrar el nombre del paquete con el que queremos trabajar. En este ejemplo, voy a usar la excelente biblioteca de juegos RayLib (puede obtener más información sobre RayLib 3.0 aquí). Localizamos el nombre del paquete utilizando la función de búsqueda integrada. Simplemente escriba:
c:devvcpkgvcpkg search raylib
Los resultados deberían ser algo como:
Tenga en cuenta que tenemos dos opciones diferentes aquí, raylib y raylib[non-audio]. Vamos a instalar la versión completa ‘raylib’. Esto se hace con el comando:
c:devvcpkgvcpkg install raylib
En este punto, vcpkg hará la magia de descargar e instalar la biblioteca raylib por usted. Debido al comando «integrar instalación» que ejecutamos anteriormente, su biblioteca está lista para funcionar en Visual Studio, no se requieren más acciones. No es necesario configurar el enlazador, simplemente agregue el #include apropiado en la parte superior de su código y listo, ¡ya está listo para comenzar!
¿Qué pasa con el código de Visual Studio?
El uso de vcpkg también puede hacer que el desarrollo de C++ sea más agradable para los desarrolladores de Visual Studio Code (y también para los usuarios de CLion), pero el proceso es ligeramente diferente. Inicie Visual Studio Code, luego configuremos un par de extensiones, CMake Tools y C++:
A continuación, debemos configurar Visual Studio Code para estar al tanto de vcpkg. Abra settings.json (este es un archivo de configuración global para Visual Studio Code) seleccionando Archivo->Preferencias->Configuración o Ctrl+, (esa es una coma por cierto…).
A continuación, en la ventana del editor recién abierta, haga clic en el botón del editor para cambiar al modo de edición de texto.
Ahora agregue la siguiente línea en algún lugar dentro del archivo settings.json (asegurándose de que la línea anterior termine con una coma.
"cmake.configureSettings": { "CMAKE_TOOLCHAIN_FILE": "c:/dev/vcpkg/scripts/buildsystems/vcpkg.cmake" }
Ahora podemos usar cualquier biblioteca que instalemos usando vcpkg sin ninguna configuración adicional. También puede realizar esto por proyecto. Abra la paleta de comandos y luego seleccione Preferencias Abrir configuración del espacio de trabajo.
El proceso a partir de este punto es el mismo que el anterior.
Con CMake Tools instalado, podemos iniciar un nuevo proyecto de CMake con bastante facilidad. En la paleta (Ctrl + MAYÚS + P o F1 si no quiere hacer ejercicio con los dedos), escriba CMake: luego seleccione Inicio rápido.
Esto lo guiará a través del proceso de creación de un archivo CMake básico. Comience eligiendo su objetivo de compilación, yo elegí personalmente X64_86.
Finalmente nombra tu objetivo, yo llamé al mío fargo, sin motivo aparente.
Finalmente seleccionamos el tipo de proyecto que estamos creando, ya sea un ejecutable o librería. En mi caso voy con ejecutable.
Ahora estamos a punto de terminar. ¡Es hora de construir nuestro código! Simplemente seleccione CMake Build o presione F7.
Su código debería compilarse ahora y, con suerte, todo saldrá bien. Eche un vistazo a la salida, le informará dónde se creó su ejecutable (en este caso, c:tempfargobuildDebugfargo.exe). Esto es útil para establecer la configuración de depuración.
Presiona F5 para ejecutar tu código. A continuación, seleccione C++ (Windows)
A continuación, seleccione Configuración predeterminada:
El archivo launch.json ahora estará abierto, edite la entrada «programa» para que apunte a la ubicación de su ejecutable, utilizando los detalles del resultado anterior. En mi caso usé “${workspaceFolder}/build/debug/fargo.exe”
Finalmente presione F5 para ejecutar su código. Ya ha terminado, sabe que tiene un entorno de compilación exitoso.
Desafortunadamente, vcpkg no es tan sencillo cuando se trabaja con Visual Studio Code. Funciona con CMake y maneja las instalaciones de paquetes, pero tiene que hacer un poco de trabajo duro (al menos por ahora, la integración de vcpkg en Visual Studio Code está mejorando con el tiempo). No te preocupes, no es un proceso terrible. Abra el archivo CMakeList.txt y edite el suyo similar al siguiente archivo:
cmake_minimum_required(VERSION 3.0.0) project(main VERSION 0.1.0) INCLUDE_DIRECTORIES( C:/dev/vcpkg/installed/x86-windows/include ) LINK_DIRECTORIES( C:/dev/vcpkg/installed/x86-windows/lib ) add_executable(main main.cpp) TARGET_LINK_LIBRARIES(main SDL2 raylib )
Las adiciones clave aquí son las adiciones de LINK_DIRECTORIES e INCLUDE_DIRECTORIES, esto le permite a CMake saber dónde se están instalando sus paquetes. Finalmente, llama a TARGET_LINK_LIBRARIES y pasa todas las bibliotecas (que coinciden con el nombre de vcpkg que usó para descargarlas) que desea usar en su proyecto, en este caso, SDL y raylib están configurados. A medida que agregue más bibliotecas a su proyecto, asegúrese de que estén vinculadas aquí.