Descargar, instalar y configurar la carga de trabajo de Linux

Los proyectos de Linux son compatibles con Visual Studio 2017 y versiones posteriores. Para ver la documentación de estas versiones, establezca el control selector de Versión de Visual Studio para este artículo en Visual Studio 2017 o Visual Studio 2019. Se encuentra en la parte superior de la tabla de contenido de esta página.

Puede usar el IDE de Visual Studio en Windows para crear, editar y depurar proyectos de C++ que se ejecutan en un sistema Linux remoto, una máquina virtual o el Subsistema de Windows para Linux.

Puede trabajar en la base de código existente que utiliza CMake sin tener que convertirla en un proyecto de Visual Studio. Si la base de código es multiplataforma, puede tener como destino Windows y Linux desde dentro de Visual Studio. Por ejemplo, puede editar, compilar y depurar el código en Windows con Visual Studio. Después, redestine rápidamente el proyecto a Linux para compilar y depurar en un entorno de Linux. Los archivos de encabezado de Linux se copian automáticamente en el equipo local. Visual Studio los usa para proporcionar compatibilidad completa con IntelliSense (finalización de instrucciones, Ir a definición, etc.).

Para cualquiera de estos escenarios, se requiere la carga de trabajo de desarrollo de Linux con C++ .

Instalación de Visual Studio

  1. Escriba "Instalador de Visual Studio" en el cuadro de búsqueda de Windows:

    Screenshot of the Windows search box which contains the text: visual studio installer.

  2. Busque el instalador en los resultados de la categoría Aplicaciones y haga doble clic en este. Cuando se abra el instalador, elija Modificar y después haga clic en la pestaña Cargas de trabajo. Desplácese hacia abajo hasta Otros conjuntos de herramientas y seleccione la carga de trabajo Desarrollo de Linux con C++ .

    Screenshot highlighting the Visual C++ for Linux Development workload item in Visual Studio Installer.

    Se ha seleccionado la carga de trabajo Desarrollo de Linux. El panel de detalles de la instalación está resaltado y muestra lo que se incluye en la carga de trabajo. Lo que incluye: Características principales de Visual Studio C++, tiempo de ejecución de Windows Universal C, Visual C++ para el desarrollo de Linux. También hay seleccionado un componente opcional: Herramientas de Visual C++ para CMake y Linux.

  3. Si el destino es IoT o plataformas incrustadas, vaya al panel Detalles de instalación a la derecha. En Desarrollo de Linux con C++ , expanda Componentes opcionales y elija los componentes que necesite. La compatibilidad de CMake con Linux está seleccionada de forma predeterminada.

  4. Haga clic en Modificar para continuar con la instalación.

Opciones para crear un entorno Linux

Si no dispone de una máquina Linux, puede crear una máquina virtual Linux en Azure. Para obtener más información, vea Inicio rápido: Creación de una máquina virtual Linux en Azure Portal.

En Windows 10 y versiones posteriores, puede instalar y tener como destino su distribución de Linux favorita en el Subsistema de Windows para Linux (WSL). Para obtener más información, vea Windows Subsystem for Linux Installation Guide for Windows 10 (Guía de instalación del subsistema de Windows para Linux en Windows 10). Si no puede obtener acceso a la Tienda Windows, puede descargar manualmente los paquetes de distribución de WSL. WSL es un entorno de consola muy conveniente, pero su uso no es aconsejable en aplicaciones gráficas.

Los proyectos de Linux en Visual Studio requieren que se instalen las siguientes dependencias en el sistema remoto Linux o WSL:

  • Un compilador: Visual Studio 2019 y versiones posteriores tienen compatibilidad completa con GCC y Clang.
  • gdb: Visual Studio inicia automáticamente gdb en el sistema Linux y usa el front-end del depurador de Visual Studio para proporcionar una experiencia de depuración de plena fidelidad en Linux.
  • rsync y zip: la inclusión de rsync y zip permite a Visual Studio extraer archivos de encabezado del sistema Linux al sistema de archivos de Windows para su uso con IntelliSense.
  • make
  • openssh-server (solo para sistemas Linux remotos): Visual Studio se conecta a los sistemas Linux remotos a través de una conexión SSH segura.
  • CMake (solo proyectos de CMake): puede instalar los archivos binarios CMake vinculados estáticamente para Linux de Microsoft.
  • ninja-build (solo proyectos de CMake): Ninja es el generador predeterminado para configuraciones de Linux y WSL en Visual Studio 2019, versión 16.6 o posteriores.

Los comandos siguientes suponen que está usando g++ en lugar de clang.

Los proyectos de Linux en Visual Studio requieren que se instalen las siguientes dependencias en el sistema remoto Linux o WSL:

  • gcc: Visual Studio 2017 tiene compatibilidad completa con GCC.
  • gdb: Visual Studio inicia automáticamente gdb en el sistema Linux y usa el front-end del depurador de Visual Studio para proporcionar una experiencia de depuración de plena fidelidad en Linux.
  • rsync y zip: la inclusión de rsync y zip permite a Visual Studio extraer archivos de encabezado del sistema Linux al sistema de archivos de Windows para IntelliSense.
  • make
  • openssh-server: Visual Studio se conecta a los sistemas Linux remotos a través de una conexión SSH segura.
  • CMake (solo proyectos de CMake): puede instalar los archivos binarios CMake vinculados estáticamente para Linux de Microsoft.

Instalación de Linux: Ubuntu en WSL

Cuando el destino sea WSL, no hay necesidad de agregar una conexión remota o configurar SSH para compilar y depurar. zip y rsync son necesarios para sincronizar automáticamente los encabezados de Linux con Visual Studio para la compatibilidad con IntelliSense. ninja-build solo es necesario para los proyectos de CMake. Si las aplicaciones necesarias aún no están instaladas, puede hacerlo con este comando:

sudo apt-get install g++ gdb make ninja-build rsync zip

Ubuntu en sistemas Linux remotos

El sistema Linux de destino debe tener openssh-server, g++ , gdb y make instalados. ninja-build solo es necesario para los proyectos de CMake. El demonio de ssh debe estar en ejecución. zip y rsync son necesarios para realizar la sincronización automática de encabezados remotos con el equipo local para la compatibilidad con IntelliSense. Si estas aplicaciones aún no están instaladas, puede hacerlo como se indica a continuación:

  1. En un símbolo del sistema del shell del equipo Linux, ejecute:

    sudo apt-get install openssh-server g++ gdb make ninja-build rsync zip
    

    Es posible que se le pida la contraseña raíz para ejecutar el comando sudo. Si es así, escríbala y continúe. Una vez que finalice, estarán instaladas las herramientas y los servicios requeridos.

  2. Asegúrese de que el servicio ssh se esté ejecutando en el equipo Linux al ejecutar:

    sudo service ssh start
    

    Este comando inicia el servicio y lo ejecuta en segundo plano, listo para aceptar conexiones.

Fedora en WSL

Fedora usa el instalador de paquetes dnf. Para descargar g++ , gdb, make, rsync, ninja-build y zip, ejecute lo siguiente:

sudo dnf install gcc-g++ gdb rsync ninja-build make zip

zip y rsync son necesarios para sincronizar automáticamente los encabezados de Linux con Visual Studio para la compatibilidad con IntelliSense. ninja-build solo es necesario para los proyectos de CMake.

Fedora en sistemas Linux remotos

La máquina de destino en la que se ejecuta Fedora usa el instalador de paquetes dnf. Para descargar openssh-server, g++ , gdb, make, ninja-build, rsync y zip y reiniciar el demonio de ssh, siga estas instrucciones: ninja-build solo es necesario para los proyectos de CMake.

  1. En un símbolo del sistema del shell del equipo Linux, ejecute:

    sudo dnf install openssh-server gcc-g++ gdb ninja-build make rsync zip
    

    Es posible que se le pida la contraseña raíz para ejecutar el comando sudo. Si es así, escríbala y continúe. Una vez que finalice, estarán instaladas las herramientas y los servicios requeridos.

  2. Asegúrese de que el servicio ssh se esté ejecutando en el equipo Linux al ejecutar:

    sudo systemctl start sshd
    

    Este comando inicia el servicio y lo ejecuta en segundo plano, listo para aceptar conexiones.

Pasos siguientes

Ya está listo para crear o abrir un proyecto de Linux y configurarlo para ejecutarse en el sistema de destino. Para obtener más información, consulte: