Compilar en Windows usando Microsoft Visual C++ 2012

Una guía paso por paso para compilar OpenTTD en Visual Studio 2012

Contents

Antes de empezar

Asumo que ya tienes Microsoft Visual Studio instalado y funcionando.

Archivos requeridos

/File/en/Notice.png
Nota
Esta guía ha sido comprobada en Windows 8 64 bits, debería funcionar en otras versiones de Windows también, si encuentras algún error adicional por favor háznoslo saber en el foro.

Paso 1 - Preparando los archivos

1.1 Crea tu carpeta de Trabajo principal (por ejemplo C:\OpenTTD)

1.2 Crea una subcarpeta llamada trunk dentro de la carpeta que creaste antes.

1.3 Seleccciona la carpeta trunk y haz un check-out con TortoiseSVN usando svn://svn.openttd.org/trunk en el campo URL (si necesitas ayuda échale un vistazo a svn checkout)

1.4 Extrae el archivo openttd-useful-X.X-win.zip descargado previamente dentro de nuestra carpeta de Trabajo y una carpeta llamada OpenTTD essentials se creará.

1.5 Extrae el archivo DMusic_for_OpenTTD.zip descargado previamente dentro de la carpeta OpenTTD essentials.

Paso 2 - Configurar Visual Studio

2.1 Cierra Visual Studio si lo tienes abierto e instala Microsoft Windows SDK.

2.2 Abre Microsoft Visual Studio y ve a Archivo -> Abrir Proyecto.

2.3 Selecciona el archivo (CarpetaDeTrabajo)\trunk\projects\openttd_vs100.sln.

2.4 Aparecerá una ventana preguntándote si quieres actualizar los ajustes del compilador, pulsa el botón Actualizar.

2.5 Ve a Compilar -> Administrador de Configuración y selecciona Configuración: Release.

2.6 Selecciona openttd en el Explorador de Soluciones, haz click con el botón derecho del ratón y selecciona Propiedades.

2.7 Selecciona Configuración: Release en la parte superior de la ventana.

/File/en/Notice.png
Nota
Puedes dejar ambos ajustes tal y como vienen por defecto en Debug si quieres pero tendrás que repetir estos pasos cuando lo cambies de nuevo a Release.

2.8 Selecciona Propiedades de configuración -> Directorios de VC++.

2.9 Selecciona Directorio de archivos de inclusión y añade (CarpetaDeTrabajo)\OpenTTD essentials\shared\include; a la lista. No olvides poner el ; al final, es importante.

2.10 Selecciona Directorio de archivos de bibliotecas y añade (CarpetaDeTrabajo)\OpenTTD essentials\win32\library; a la lista. De nuevo No olvides poner el ; al final, es importante, Cambia win32 por win64 si estás compilando una build de 64 bits.

Ahora puedes intentar generar la solución.

Tu archivo final deberá estar en (CarpetaDeTrabajo)\trunk\objs\Win32\Release\openttd.exe

Solución de Errores

Arreglar Error C1083: No se puede abrir el archivo (de código fuente/incluir) 'X' No such file or directory

Esto normalmente ocurre cuando intentas compilar solo el proyecto openttd, debes compilar la solución completa porque algunos archivos necesarios son creados "al vuelo" por scripts

Solución: Selecciona Solución 'openttd_vs100' en Explorador de Soluciones, haz click con el botón derecho del ratón y selecciona Compilar Solución.

Arreglar Error C1189: "The C++ Standard Library forbids macroizing keywords. Enable warning C4005 to find the forbidden macro[...]"

Abre la ventana de propiedades del proyecto. (Ver paso 2.6)

Selecciona C/C++ -> Preprocesador.

Selecciona Definiciones de preprocesador y añade

_XKEYCHECK_H;

a la lista. No olvides poner el ; al final, es importante.

Arreglar Error LNK2026: "Módulo no seguro de una imagen SAFESEH[...]"

Abre la ventana de propiedades del proyecto. (Ver paso 2.6)

Selecciona Vinculador.

Selecciona Línea de comandos.

Escribe (o c&p) en la caja de texto Opciones adicionales:

/SAFESEH:NO

Más información: [1]

Arreglar Warning C4005: "'FACILITY_DIRECTMUSIC' : redefinición de macro"

Abre el árbol openttd en el Explorador de Soluciones, abre Dependencias Externas y selecciona dmerror.h

Cambia al principio del archivo (normalmente en la línea 12) donde está esto:

#define FACILITY_DIRECTMUSIC      0x878       /* Shared with DirectSound */

a

#ifndef FACILITY_DIRECTMUSIC
	#define FACILITY_DIRECTMUSIC      0x878       /* Shared with DirectSound */
#endif