¿Cómo implementar el código del juego en Linux? Quiero orientación experta.
Tar es una herramienta de empaquetado bajo la plataforma Linux. ¿Qué necesito hacer para portar un programa como este a la plataforma Windows?
En primer lugar, debe realizar un trabajo de preparación, instalar la última versión de Cygwin en la plataforma Windows e instalar herramientas de desarrollo como GCC en Cygwin. También necesita un entorno de desarrollo de Windows. Puede utilizar la última versión de Visual Studio (MicrosoftVisualStudio.NET2003). Obtenga el código fuente más reciente para Tar en www.gnu.org, versión 1.13. Descomprima el paquete tar-1.13.tar.gz.source en Cygwin. NOTA No utilice WINRAR o WINZIP para descomprimir en Windows. WINRAR y WINZIP tienen problemas al descomprimir ciertos paquetes tar.gz. Esto puede provocar excepciones en directorios y archivos descomprimidos. Si se trata de un paquete de código fuente, es posible que no se compile correctamente en Cygwin. Después de la descompresión, ingrese al directorio tar-1.13, ingrese el comando
/configure
en el directorio actual e ingrese
make
< nuevamente después de ejecutarlo. Comience a compilar la versión Cygwin de tar.Básicamente, no habrá problemas con la compilación. Puede ingresar al directorio src para ver el programa tar tar.exe recién compilado.
Cygwin es un entorno de simulación de Linux con capa API. Si puede compilar y ejecutar bajo Cygwin. De hecho, también se puede compilar y ejecutar en Windows, pero requiere una API intermedia para simular ciertas operaciones específicas de Linux. Una manera fácil de saber si un programa de Linux se puede migrar a Windows es ver si el código fuente se compila y se ejecuta en Cygwin.
Compilar el código fuente de Tar en Cygwin es sólo una de las razones para determinar si es portátil. Otra razón es que el proceso de portar el código requiere un archivo de encabezado especial, config.h. config.h es el archivo de código fuente más importante durante el proceso de migración. El archivo config.h no forma parte del código fuente en sí, pero se incluye en Cygwin cuando se ejecuta el comando "./configure" en Cygwin. Ejecutar el comando "./Configure" en Cygwin generará el archivo config.h de acuerdo con el entorno de desarrollo de la plataforma Cygwin. Durante el proceso de compilación, el archivo config.h también es necesario para controlar los elementos de compilación del código. La portabilidad también se basa en el archivo config.h.
El siguiente paso es construir el proyecto de Windows. Utilice VisualStudio.NET 2003 para crear un proyecto vacío llamado WinTar. Según el resultado de la compilación Cygwin, el código Tar principal se encuentra en los directorios Src y lib. Copie estos dos directorios en un nuevo proyecto y agregue el código al proyecto. Luego copie Config.h al directorio del proyecto WinTar.
El trabajo de preparación básicamente está completado y el siguiente paso es el trasplante. El proceso de trasplante se puede dividir en tres partes.
Tres. El primer objetivo: hacer que WinTar sea compilable (compilador)
La consecución del primer objetivo se logra principalmente en torno a Config.h. Una diferencia importante entre el entorno de desarrollo de Linux y el entorno de desarrollo de Windows es la diferencia en los archivos de encabezado de CLibrary y las definiciones de varios tipos. Config.h proporciona un cambio de compilación completo para manejar las diferencias causadas por diferentes entornos de desarrollo entre diferentes plataformas. Ahora, necesitamos modificar manualmente el archivo para que el código fuente de Tar pueda adaptarse a la plataforma Windows.
El primer paso es ajustar las ubicaciones de inclusión de varios archivos de encabezado de CLibrary (HeaderFile). Hay muchas definiciones similares a HAVE_XXXX_H en Config.h. Por ejemplo, definir HAVE_CONFIG_H como 1 significa que config.h se puede usar en el proyecto.
#defineHAVE_MALLOC_H1 significa que el archivo de encabezado Malloc.h se puede utilizar en el proyecto. Al ajustar estos valores de definición, puede eliminar algunas inclusiones de archivos de encabezado que no están disponibles en las plataformas Windows. Puede haber muchas relaciones de inclusión de archivos de encabezado que deban manejarse en otros lugares, pero la definición aquí básicamente resuelve la mayoría de los problemas de inclusión de archivos de encabezado.
/*Define si tienes el archivo de encabezado.*/
/*#undefHAVE_LINUX_FD_H*/
/*Define si tienes el archivo de encabezado.*/
#defineHAVE _LOCALE_H1
/*Define si tienes el archivo de encabezado.*/
#defineHAVE_MALLOC_H1
/*Define tu archivo de encabezado. */
/*#undefHAVE_NDIR_H*/
El segundo paso es ajustar las definiciones de varios tipos de datos. Puede haber muchos tipos de datos especiales en Linux. Estas definiciones suelen ser redefiniciones de tipos de datos básicos. Se pueden modificar según la definición del tipo de datos en la plataforma Windows. Por ejemplo, hay un tipo de datos mode_t en el entorno de desarrollo de Cygwin, pero la biblioteca CLibrary de Visual Studio no puede encontrar dicho tipo de datos. config.h proporciona un elemento de modificación que permite a los desarrolladores modificar la definición de mode_t y sugiere que si mode_t no está definido, se puede definir como un tipo int. Esto resuelve el problema de que mode_t no esté definido. Otros tipos de datos se manejan de la misma manera.