GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo compilar código de Windows Visual C++ en Linux

Siempre y cuando escriba su código de manera portátil (sin usar la funcionalidad específica del sistema operativo/compilador como windows.h o extensiones de compilador específicas) y use bibliotecas portátiles que debe compilar tanto con Visual Studio como con GCC.

La cosa es que si bien ambos funcionan, lo hacen de manera un poco diferente. En su mayoría, se trata de configuraciones predeterminadas diferentes, que es posible que deba anular explícitamente. Como ejemplo:

  • Visual Studio 2017 y versiones posteriores tienen como valor predeterminado C++14. Utilice la opción /std para especificar un estándar diferente.

  • GCC tiene un conjunto predeterminado, pero le permite cambiar el estándar que usa para la compilación. Compilando con

    g++ example.cpp
    

    utiliza el estándar predeterminado (estándar C++98 para GCC antes de la versión 6 y C++14 para GCC después de la versión 6). Su código parece fallar porque usa funciones de C++ 11, pero su compilador usa un estándar más antiguo de forma predeterminada.

    g++ -std=c++11 example.cpp
    

    debería hacer desaparecer algunos de sus errores especificando explícitamente el estándar, en este caso el estándar C++11.

Estas son solo compensaciones diferentes que eligen los compiladores. Tener solo un estándar compatible probablemente hace que el soporte y la corrección de errores sean más fáciles, ya que no tiene diferentes combinaciones de compilador + versión estándar que posiblemente puedan tener diferentes errores. Poder cambiar el estándar utilizado para la compilación hace que sea más fácil probar si un programa funciona bien con un nuevo estándar o qué cambios importantes debe corregir, etc...

En general, GCC es más mínimo y tiene que especificarlo explícitamente si desea que haga algunas cosas adicionales. Recomiendo usar algo como:

g++ -Wall -Wextra -pedantic -std=c++11 example.cpp

Usando -Wall y -Wextra dar un nivel de advertencia decente para comenzar con -pedantic le dice si está tratando de usar una extensión de compilador que funciona pero haría que su código sea menos portátil y, por último, pero no menos importante, siempre debe especificar el estándar que desea usar, ya sea -std=c++11 , -std=c++14 o el antiguo -std=c++98 .


También puede consultar la posibilidad de desarrollar y depurar de forma remota con VS 2015 y la extensión de desarrollo de Linux. Visual C++ para desarrollo de Linux (30 de marzo de 2016)


Linux
  1. Linux – ¿Cómo desinstalar Grub?

  2. Cómo compilar e instalar software desde el código fuente en Linux

  3. Detectar Windows o Linux en C, C++

  4. ¿Puede Clang compilar código con GCC compilado .a libs?

  5. ¿Cómo compilar la solución de Visual Studio en Linux?

Cómo compilar y ejecutar programas C, C++ en Linux

Cómo instalar Windows PowerShell Core 6.0 en Linux

Cómo instalar Visual Studio Code en Fedora 36 Linux

Cómo instalar el código de Visual Studio en Rocky Linux 8

Cómo instalar el código de Visual Studio en Linux Mint 20

¿Cómo puedo perfilar el código C++ que se ejecuta en Linux?