Comstackdor cruzado C ++ de Windows a Linux

¿Hay herramientas fáciles de usar para comstackr de forma cruzada desde Windows a Linux?

crosstool-ng admite la comstackción de comstackdores cruzados con el host cygwin .

Visión de conjunto:

  • Instalar cygwin, con paquetes de desarrollo
  • Descargar crosstool-ng
  • Extraiga el tarball ( tar xvjf crosstool-ng* )
  • Ejecuta ./configure
  • Cuando configure se queja de la falta de una herramienta, vuelva a la configuración de cygwin e instale el paquete correspondiente (por ejemplo, flex , libtool , ncurses-devel ) Necesitará al menos lo siguiente:
    • Devel / gperf
    • Devel / bison
    • Devel / byacc
    • Devel / wget
    • Devel / parche
    • Devel / make (versión de GNU)
    • Devel / automake 1.10+
    • Libs / libncursesw10
    • Libs / libncursesw10-devel
  • make
  • make install
  • Cree un nuevo directorio para comstackr el comstackdor cruzado, p. Ej. /usr/src/cross-linux-gnu-root
  • Habilite el soporte de sensibilidad de mayúsculas en todo el sistema en el registro (consulte https://superuser.com/questions/266110/how-do-you-make-windows-7-fully-case-sensitive-with-respect-to-the- sistema de archivos # answer-842670 )
  • Monte el directorio con distinción entre mayúsculas y minúsculas (por ejemplo, mount c:/cygwin/usr/src/cross-linux-gnu-root /usr/src/cross-linux-gnu -o binary,posix=1 )
  • Desde dentro del directorio de comstackción del comstackdor cruzado, ct-ng menuconfig
  • En los menús, establezca la architecture de destino en x86 (probablemente) y subarchitecture en i686 (evite los problemas de GCC 4.8 , gracias a osm0sis), segmente Kernel a linux y dirija la biblioteca de C a glibc y habilite el comstackdor de C ++.
  • Para solucionar problemas de 4.0 , también habilite EXPERIMENTAL en Paths and misc options luego, vaya en Companion tools (en el nivel superior) y habilite Build some companion tools y luego make 3.81 (Gracias osm0sis)
  • wget tiene problemas con los últimos certificados de kernel.org, así que use el método .wgetrc en esta respuesta aceptada: ¿Cómo soluciono errores de certificado cuando ejecuto wget en una URL HTTPS en Cygwin? (Gracias osm0sis)
  • Actualmente se requieren 3 parches de archivos para evitar más errores:
    • el error _libintl_gettext como se menciona en los comentarios
    • los encabezados byteshift , y
    • los encabezados ELF (gracias Duncan Calvert & osm0sis)
  • ct-ng build

Por supuesto, esto NO le permitirá crear aplicaciones de Linux desde Visual Studio. (VS2010 y posterior le permite construir con otras cadenas de herramientas como gcc, pero necesita una descripción apropiada de la cadena de herramientas además del comstackdor cruzado construido por crosstool-ng). Pero tendrá un g++-linux-gnu , que puede ejecutar directamente o utilizando un Makefile.

NOTA: Crear el comstackdor cruzado lleva mucho tiempo. osm0sis ha proporcionado un gcc 4.8.1 preconstruido aquí , junto con sus notas sobre la construcción del comstackdor cruzado (utilizado para actualizar esta respuesta).

Su mejor opción es utilizar un IDE multiplataforma como Code :: Blocks que pueda importar proyectos MSVC y generar un Makefile para Linux, que luego puede ejecutar en Linux (incluso con el mismo progtwig si lo desea).

Por lo tanto, su flujo de trabajo sería similar al siguiente:

 Code, Compile, and debug on MSVC -> import into Code::Blocks & generate Makefile -> test compile and debug with GCC -> copy to Linux with Code::Blocks -> test compile & debug on Linux 

Es un poco obtuso, probablemente, pero al menos Code :: Blocks se encarga de muchos de esos pequeños detalles con cosas como Makefiles, y qué no.

¿Estás pidiendo algo que pueda tomar el código escrito para ejecutarse en Windows y hacer que se ejecute en Linux? Realmente no hay un comstackdor que haga eso, pero tal vez estés buscando Wine ( http://www.winehq.org/ ), que te permite ejecutar aplicaciones de Windows en Linux (si usan API, Wine ha funcionado).

Editar: supongo que su código está usando las API de Windows (Win32, etc.) en esta respuesta. Si solo está utilizando Estándar C ++ y bibliotecas disponibles multiplataforma, entonces hay muchas otras respuestas.

No creo que haya comstackdores que te permitan comstackr en Windows y luego tomar el binario resultante y ejecutarlo en una máquina Linux. Su mejor opción es configurar dos entornos de desarrollo, uno en Windows y otro en Linux. Realice la mayor parte de su desarrollo y depuración en el entorno de Windows si eso es lo que le conviene, luego compile y pruebe con frecuencia en Linux para asegurarse de que su código sea verdaderamente multiplataforma. También querrá utilizar un sistema de comstackción multiplataforma y un marco de prueba. Recomiendo usar cmake y Google Test , respectivamente.

Comstack Linux desde Windows sin usar virtualización o comstackdor cruzado, pero solo de forma nativa a través de coLinux
Cree archivos ejecutables nativos de Linux sin dejar (reiniciar) las ventanas.
Comstackción C / C ++ para Linux bajo Windows a través de Linux Cooperativo
El cambio más rápido entre Windows y Linux a través de ALT-TAB (no es necesario reiniciar o reiniciar).

1. Instalar coLinux ( http://sourceforge.net/projects/colinux/files/latest/download?source=files )
2.Utilice la imagen del sistema de archivos raíz de CoLinux: Ubuntu-9.04-1gb.7z ( http://sourceforge.net/projects/colinux/files/Images%202.6.x%20Ubuntu/Ubuntu%209.04/ )
3.Comience coLinux
4. Cambie la cadena “archive.ubuntu.com” a “old-releases.ubuntu.com” con:
shell> sudo vi /etc/apt/sources.list
5. Actualice su configuración:
shell> sudo apt-get update
6. Instale dos paquetes de software para poder comstackr sus progtwigs:
shell> sudo apt-get install build-essential
(c / c ++, comstackdores gcc)
shell> sudo apt-get install libmysqlclient15-dev
(mysql dev 5.1)
7. Acceder a directorios de Windows desde coLinux
shell> mount cofs0 / mnt / -t cofs
shell> cd / mnt
8.Compile
shell> c ++ your.source.cc -o ejecutable.name