Compartir a través de


Tutorial: Depuración de un proyecto de CMake en una máquina Windows remota

En este tutorial, se usa C++ con Visual Studio en Windows para crear y compilar un proyecto de CMake que se puede implementar y depurar en una máquina remota Windows. El tutorial es específico para Windows ARM64, pero los pasos se pueden generalizar para otras arquitecturas.

En Visual Studio, la experiencia de depuración predeterminada para ARM64 es la depuración remota de una máquina Windows ARM64. Configure las opciones de depuración tal como se muestra en este tutorial. De lo contrario, cuando intente depurar un proyecto de CMake ARM64, verá un error en el que se le indicará que Visual Studio no puede encontrar la máquina remota.

En este tutorial, aprenderá a:

  • Crear un proyecto de CMake.
  • Configurar un proyecto de CMake para la compilación para ARM64.
  • Configurar un proyecto de CMake para la ejecución en una máquina remota Windows ARM64.
  • Depurar un proyecto de CMake que se ejecute en una máquina remota Windows ARM64.

Requisitos previos

En la máquina host

Si quiere configurar Visual Studio para el desarrollo multiplataforma en C++, instale las herramientas de compilación para la arquitectura de destino. Para este tutorial, instale las herramientas de compilación de ARM64 siguiendo estos pasos:

  1. Ejecute el instalador de Visual Studio. Si aún no ha instalado Visual Studio, consulte Instalar Visual Studio.
  2. En la pantalla de inicio del Instalador de Visual Studio, elija Modificar.
  3. En las opciones de la parte superior, elija Componentes individuales.
  4. Desplácese hacia abajo hasta la sección Compiladores, herramientas de compilación y entornos de ejecución.
  5. Asegúrese de que se seleccionan los siguientes elementos:
    • Herramientas de CMake de C++ para Windows
    • MSVC v142 - VS 2019 C++ ARM64 build tools (Latest) (MSVC v142: herramientas de compilación de ARM64 con C++ en VS 2019 [versión más reciente]): es importante que elija las herramientas de compilación de ARM64 en lugar de las de ARM (busque "64"), así como que elija la versión correspondiente a VS 2019.
  6. Seleccione Modificar para instalar las herramientas.

En la máquina remota

  1. Instale las herramientas remotas en la máquina remota. Para este tutorial, instale las herramientas de ARM64 siguiendo las instrucciones que figuran en Descarga e instalación de las herramientas remotas.
  2. Inicie y configure el depurador remoto en la máquina remota. Para este tutorial, siga las instrucciones que figuran en Establecimiento del depurador remoto en la máquina remota Windows.

Creación de un proyecto de CMake

En la máquina host Windows:

  1. Ejecución de Visual Studio
  2. En el menú principal, seleccione Archivo>Nuevo>Proyecto.
  3. Seleccione Proyecto de CMake>Siguiente.
  4. Asigne un nombre al proyecto y elija una ubicación. Seleccione Crear.

Espere unos minutos para que Visual Studio pueda crear el proyecto y rellenar los datos en el Explorador de soluciones.

Configuración para ARM64

Para tener como destino una máquina Windows ARM64, debe realizar la compilación con las herramientas de compilación de ARM64.

Seleccione el menú desplegable Configuración de Visual Studio y la opción Administrar configuraciones.

Choose Manage Configurations in the Visual Studio configurations drop-down.

Para agregar una nueva configuración, seleccione Agregar una nueva configuración (el botón + verde).
En el cuadro de diálogo CMakeSettings que aparece, seleccione arm64-debug y, luego, elija Seleccionar:

Add arm64-debug configuration.

Este comando agrega una configuración de depuración denominada arm64-Debug al archivo CmakeSettings.json. Este nombre de configuración es único y descriptivo, y facilita la identificación de la configuración en el menú desplegable Configuración.

El menú desplegable Conjunto de herramientas se establece en msvc_arm64_x64. La configuración ahora debería ser similar a esta:

CMake settings dialog.

Nota:

En el menú desplegable Conjunto de herramientas, msvc_arm64 selecciona herramientas de host de 32 bits para la compilación múltiple en ARM64, mientras que msvc_arm64 x64 selecciona herramientas de host de 64 bits para la compilación múltiple en ARM64, que es el proceso que llevará a cabo en este tutorial. Para obtener más información sobre los entornos de conjunto de herramientas disponibles, consulte Entornos predefinidos.

Guarde el archivo CMakeSettings.json. En el menú desplegable de configuración, seleccione arm64-debug. Puede que, tras guardar el archivo CMakeSettings.json, este tarde un tiempo en aparecer en la lista:

Ensure that arm64-debug is selected in the Visual Studio configurations drop-down.

Adición de un archivo de configuración de la depuración

Como paso siguiente, agregue información de configuración que indique a Visual Studio dónde encontrar la máquina remota, además de otros detalles de configuración.

Cambie de la vista del Explorador de soluciones a la de destinos; para ello, use el botón Cambiar vistas:

Solution explorer switch view button.

Después, en el Explorador de soluciones, haga doble clic en Vista de destinos de CMake para ver el proyecto.

Abra la carpeta del proyecto (en este ejemplo, Proyecto CMakeProject3) y, después, haga clic con el botón derecho en el archivo ejecutable y seleccione Agregar configuración de depuración:

Select add debug configuration.

Este comando crea un archivo launch.vs.json en el proyecto. Ábralo y cambie las entradas siguientes para habilitar la depuración remota:

  • projectTarget: este valor se establece automáticamente si ha agregado el archivo de configuración de la depuración en la vista de destinos del Explorador de soluciones, tal y como se indica en las instrucciones anteriores.
  • remoteMachineName: se establece en la dirección IP de la máquina remota ARM64 o en el nombre de su máquina.

Para obtener más información sobre la configuración de launch.vs.json, consulte Referencia del esquema launch.vs.json.

Nota:

Si usa la vista de carpetas en lugar de la de destinos en el Explorador de soluciones, haga clic con el botón derecho en el archivo CMakeLists.txt y seleccione Agregar configuración de depuración. Esta experiencia difiere de la adición de la configuración de depuración desde la vista de destinos en estos aspectos:

  • Se le pedirá que seleccione un depurador; seleccione C/ C++ Remote Windows Debug (Depuración remota de Windows con C/C++).
  • Visual Studio proporcionará menos información sobre la plantilla de configuración en el archivo launch.vs.json, por lo que deberá agregarla. Deberá proporcionar las entradas remoteMachineName y projectTarget. Al agregar la configuración en la vista de destinos, solo tiene que especificar remoteMachineName.
  • En el caso del valor de configuración projectTarget, consulte el nombre único del destino en el menú desplegable Elemento de inicio. En este tutorial, por ejemplo, es "CMakeProject3.exe".

Inicio del monitor del depurador remoto en la máquina remota Windows

Antes de ejecutar el proyecto de CMake, asegúrese de que el depurador remoto de Visual Studio 2019 se esté ejecutando en la máquina remota Windows. Es posible que deba cambiar las opciones del depurador remoto en función de la situación de autenticación.

Por ejemplo, en la máquina remota, vaya a la barra de menús de Visual Studio Remote Debugger y seleccione Herramientas>Opciones. Establezca el modo de autenticación de modo que coincida con la configuración del entorno:

Remote debugger authentication options.

Después, en la instancia de Visual Studio de la máquina remota, actualice el archivo launch.vs.json para que coincida con lo anterior. Por ejemplo, si elige Sin autenticación en el depurador remoto, actualice el archivo launch.vs.json del proyecto; para ello, agregue "authenticationType": "none" en la sección configurations de launch.vs.json. De lo contrario, "authenticationType" tendrá "windows" como valor predeterminado, y no será necesario que se indique explícitamente. En este ejemplo, se muestra un archivo launch.vs.json configurado para no usar autenticación:

{
  "version": "0.2.1",
  "defaults": {},
  "configurations": [
    {
        "type": "remoteWindows",
        "authenticationType": "none"
        "name": "CMakeLists.txt",
        "project": "CMakeLists.txt",
        "projectTarget": "CMakeProject3.exe",
        "remoteMachineName": "<ip address goes here>",
        "cwd": "${debugInfo.defaultWorkingDirectory}",
        "program": "${debugInfo.fullTargetPath}",
        "deploy": [],
        "args": [],
        "env": {}
    },
    {
      "type": "default",
      "project": "CMakeLists.txt",
      "projectTarget": "CMakeProject3.exe",
      "name": "CMakeProject3.exe"
    }
  ]
}

Depurar la aplicación

En el Explorador de soluciones de la instancia de Visual Studio de la máquina host, abra el archivo CPP correspondiente a su proyecto de CMake. Si todavía está en la vista de destinos de CMake, tendrá que abrir el nodo (ejecutable) para verlo.

El archivo CPP predeterminado es una aplicación de consola de tipo Hola mundo sencilla. establezca un punto de interrupción en return 0;.

En la barra de herramientas de Visual Studio, use el menú desplegable Elemento de inicio para seleccionar el nombre que ha especificado para "name" en el archivo launch.vs.json:

Example startup item dropdown with CMakeProject3.exe selected.

Para iniciar la depuración, en la barra de herramientas de Visual Studio, elija Depurar>Iniciar depuración, o bien presione F5.

Si no se inicia, asegúrese de que se haya establecido correctamente lo siguiente en el archivo launch.vs.json:

  • "remoteMachineName" debe establecerse en la dirección IP o el nombre de máquina de la máquina remota Windows ARM64.
  • "name" debe coincidir con la selección del menú desplegable Elemento de inicio de Visual Studio.
  • "projectTarget" debe coincidir con el nombre del destino de CMake que quiera depurar.
  • "type" tiene que ser "remoteWindows"
  • Si el tipo de autenticación del depurador remoto se establece en Sin autenticación, debe establecer "authenticationType": "none" en el archivo launch.vs.json.
  • Si usa la autenticación de Windows, inicie sesión cuando se le solicite con una cuenta que la máquina remota reconozca.

Después de compilar el proyecto, la aplicación deberá aparecer en la máquina remota Windows ARM64:

Hello CMake console app running on remote Windows ARM64 machine.

La instancia de Visual Studio en la máquina host debe detenerse en el punto de interrupción para return 0;.

Qué ha aprendido

En este tutorial, ha creado un proyecto de CMake, lo ha configurado para la compilación de Windows con ARM64 y lo ha depurado en una máquina remota Windows ARM64.

Pasos siguientes

Más información sobre cómo configurar y depurar proyectos de CMake en Visual Studio: