Jump to content

Recommended Posts

¡Vuelvo a la carga con más guías! Esta vez se trata de una guía para compilar nuestra instalación de Hercules en Windows. En caso de querer compilar Hercules bajo un sistema operativo GNU/Linux esta guía es inútil, aunque la guía para compilar Hercules en Ubuntu (por txandy) será útil en tal caso porque, además de servir para compilar en Ubuntu también sirve para casi cualquier otro sistema operativo GNU/Linux.
 
Introducción
 
Es posible que a mucha gente nueva en esto, acostumbrada a descargar un programa ya hecho (llamémoslo código fuente compilado) y simplemente ejecutarlo para instalarlo después de seleccionar una serie de opciones y darle al botón mágico que tiene el texto "Instalar", le asombre. No todos los programas pueden tener el lujo de venir en esta forma: el caso de Hercules es debido a que es un programa de código abierto sin una instalación típica, con cientos de parámetros de configuración y que además ofrece la posibilidad de modificarlo fácilmente. Ni Hercules ni muchos otros programas con tal diversidad de opciones pueden permitirse ser así.
 
Para solucionar el anterior problema, en Hercules se proporciona el código fuente y es el usuario quien se preocupa de modificarlo de tal manera que se ajuste a sus necesidades, sea tocando configuraciones especiales o haciendo sus propias modificaciones de código fuente. Así pues, se asegura que habrá un programa final (el servidor) que será razonablemente eficiente y su código fuente legible para quienes sepan manejar código.
 
Esta guía tendrá solo dos pasos: la descarga e instalación de un compilador de C como es Microsoft Visual C++ (abreviado como MSVC++) y la compilación de por sí de Hercules. Como podréis ver, instalar MSVC++ será incluso más complicado que compilar el código, y tampoco lo será tanto. En caso de tener MSVC++ ya instalado en el ordenador por alguna casualidad, el paso 1 se puede saltar por completo.
 
Lo que se usará
 
Básicamente, se necesitan solo dos cosas:

  • [*]El
código fuente de Hercules previamente obtenido y descargado en la máquina local. Esta guía asume una copia local de Hercules ya descargada e instalada. [*]Un compilador de C compatible. Debido a que Hercules usa ciertos trucos avanzados de programación, solo hay unos pocos compatibles:
  • [*]Microsoft Visual C++:  Es parte de
Microsoft Visual Studio (MSVS). Las ediciones Express son gratuitas con un registro (también gratuito) con Microsoft. Las ediciones se marcan también con un número o con un año. MSVC++ no es solo un compilador sino un completo Entorno de Desarrollo Integrado, aunque en esta guía solo se verá su función de compilador y será tratado como tal. [*]Cygwin: En realidad es un entorno de consola que imita a la consola de Linux, por lo que se puede compilar igualmente bajo este entorno. No se recomienda compilar en Cygwin debido a que es más complicado y el programa resultante tiene peor rendimiento que si es compilado con MSVC++.


Se ha nombrado Cygwin y es posible compilar Hercules con él de forma similar a como se compilaría desde Linux, aunque como se ha comentado anteriormente no se usará este programa debido a que supone más bien una desventaja que una ventaja. La última versión de MSVC++ (2013 a fecha de la escritura de esta guía) soporta de herramientas de gestión de código fuente y según he podido leer podría ahorrar el paso previo necesario de instalar TortoiseGit para obtener Hercules.
 
En fin, ya es suficiente tanto texto introductorio, ¿no? ¡Comencemos!


 
Paso 1: Instalación de Microsoft Visual C++ (O Microsoft Visual Studio)
 

Como se comentó anteriormente, no es necesario instalar toda la suite Microsoft Visual Studio sino solo una edición de Microsoft Visual C++. Por tanto, para hacer la guía se instalará Microsoft Visual C++ 2010 Express debido a que para esta versión no es necesario instalar toda la suite, lo cual será un alivio en uso de espacio en disco y algo de RAM y proceso para aquellos que solo quieran compilar proyectos en C/C++ y no en C#, Visual Basic o proyectos web. El proceso de instalación para cualquier otro producto de Visual Studio debería ser similar, aunque en caso de querer instalar una versión más reciente que la 2010 habrá que comprobar previamente los requisitos del sistema.
 
Este paso se hará sin mucho detenimiento por las posibles diferencias que haya entre quienes quieran descargar una versión u otra, y dado que se puede suponer que todos saben ya cómo instalar un programa cualquiera. En otro caso, si el lector desea abrir un servidor privado de Ragnarok Online, debería replantearse su decisión al menos hasta que aprenda un poco más de manejo básico de computadores.
 
Paso 1.1: Descargar el programa instalador

Para comenzar, es necesario acceder a la web de Microsoft Visual Studio y, seleccionar la opción Descargar en el menú principal. Posteriormente habrá que elegir la opción que interese. Para esta guía interesa la opción de descargar productos de 2012 (aunque se vaya a descargar un producto de 2010). Se nos enviará a la página de selección de descargas. Ahora es momento de escoger el instalador que se desee instalar.
 
Los productos de Visual Studio capaces de compilar Hercules sin problemas (descontando las versiones no Express, porque no son gratis y realmente, ¿quién piensa comprarlas?) son las siguientes:

  • [*]
Visual Studio Express 2013 Preview, para quienes quieran una descarga de 2013. Personalmente ese "Preview" no hace especial gracia al redactor de esta guía debido a que puede significar que la aplicación no es aún final. Cuando lo actualicen y pongan una versión final puede ser una buena opción. Requiere Windows 8; [*]Visual Studio Express 2012 para Windows Desktop, para quienes quieran descargar toda la suite MSVS de 2012. Requiere una edición de Windows superior a Vista (Windows 7,  8, Server 2008 o Server 2012); [*]Visual Studio Express 2012 para Windows 8, lo mismo que la anterior, pero solo para Windows 8. Qué original, ¿verdad? [*]Visual Studio 2010 Express All-In-One ISO, una imagen ISO de toda la suite MSVS 2010 Express, de la cual solo interesa MSVC++ 2010 Express, así que no es la mejor opción a menos que se vayan a usar varias partes de la suite o se tenga afán de coleccionismo. [*]Visual C++ 2010 Express, que es la descarga que se usará en esta guía, recomendada si se piensa compilar solo Hercules o proyectos afines en C o C++.

Una vez localizada la descarga que interese, simplemente se hace click en el nombre del producto para desplegar su ficha y posteriormente seleccionar idioma (debería venir el español por defecto) y hacer click en el enlace: Instalar ahora (hacer click desde aquí te ahorrará todo este paso). Habrá que guardar el archivo resultante.

x2ln.png

 


 
Paso 1.2: Instalar Microsoft Visual C++ Express o Visual Studio Express

Una vez finalizada la descarga es preciso ejecutar el archivo obtenido para instalarlo. Tras ejecutarlo hay que esperar un poco a que se cargue la primera pantalla de la instalación. Se puede escoger no enviar información sobre la instalación a Microsoft si se desea. Posteriormente es necesario aceptar la licencia para progresar y escoger si se desea instalar además algún producto opcional (no obligatorio) de los propiestos. Luego se muestra una lista de instalaciones obligatorias que habrán de instalarse en el siguiente paso junto a MSVC++. Si la descarga escogida en el paso anterior no es completa sino que es un instalador web, como el escogido para esta guía, todos estos paquetes de instalación obligatoria se descargarán de Internet para ser instalados mientras se instala también MSVC++. Este proceso de descarga e instalación suele ser largo pero automático, así que es buen momento para prestar atención a otra cosa mientras tanto.
 
Es posible que el programa de instalación exija el reinicio del sistema durante el proceso para continuar con la instalación. En tal caso habrá que reiniciar tal y como se pide y el programa de instalación continuará y terminará una vez se reinicie el sistema. Es posible que en las horas siguientes sea necesario instalar algunas actualizaciones del sistema.
 
La única imagen del proceso que se provee se refiere solo a la instalación del software propuesto en esta guía: MSVC++ 2010 Express:
 

9h39.png

 



 
Paso 2: Manejar Visual C++ (o Visual Studio) Express y compilar Hercules
 

Una vez se tiene el entorno de desarrollo instalado, ya es posible hacer el paso más fácil (¡aunque cueste creerlo!), la compilación. Se puede ejecutar el programa recién instalado a través del menú Inicio o abriendo cualquier fichero .sln (solución de proyecto, como los que se proporcionan con Hercules). Es posible que no se puedan abrir los ficheros .sln de Hercules haciendo doble click directamente sino que tengan que hacer click derecho > Abrir con... y seleccionar el compilador recién instalado. También es posible hacer que se abra directamente con Microsoft Visual C++ asociando la extensión .sln a este programa.
 
Ahora es momento de abrir el archivo .sln apropiado en la copia local de Hercules previamente obtenida. ¿Cuál es el que hay que abrir? Pues depende de la versión instalada de Visual C++ o Visual Studio. Como en esta guía la versión que se ha instalado es 2010, pues hay que abrir la que corresponde a la versión 2010. Las soluciones correspondientes a ediciones posteriores no son reconocidas por la versión que está instalada:
 

wU8ZBXt.png

 
Por tanto, para quienes hayan seguido la presente guía, el archivo que hay que abrir es Hercules-10.sln; Hercules-12.sln es la solución para Visual Studio 2012, y a fecha de la redacción de esta guía no hay versión específica para Visual Studio 2013 pero no debería dar problemas si con Visual Studio 2013 se abre la solución para la versión 2012. En caso de que alguien tuviera Visual Studio 2008, pues le correspondería abrir Hercules-9.sln. La marca de verificación blanca sobre verde que aparece en el archivo la coloca TortoiseSVN o TortoiseGit, depende de cómo se haya obtenido la copia local de Hercules.
 
Al abrir el archivo que corresponda saldrá la pantalla de carga, que desaparecerá una vez cargue el entorno de desarrollo integrado, cuyo aspecto, una vez ha terminado de cargar por completo, debería ser más o menos así:
 

74.png

 
Se puede ignorar y denegar la participación en el "programa para la mejora de la experiencia del usuario" que ofrece Microsoft, pues la expectativa es que este programa se usará para poco más que compilar Hercules.
 
El panel central, que aparece vacío, tiene múltiples usos: ahí generalmente aparece una pantalla de bienvenida si se abre Visual Studio (o Visual ++) directamente sin ejecutar ningún programa, o también permite la edición de archivos de código fuente desde ahí. También aparecerá ahí una ventana con lo que se está haciendo en la consola mientras se compila y que muestra los resultados. A fin de cuentas, toda la interfaz es muy intuitiva.
 
Compilemos Hercules de una vez. ¿Cómo se hace? Muy sencillo, simplemente se seleccionan con ctrl + click los proyectos que se quieran compilar dentro de la solución Hercules (generalmente todos menos plugin-sample, que es un plugin de ejemplo) y se hace click en Generar selección.
 

rjo6.png

 
Tras ello aparecerá la consola de resultados informando del proceso de compilación. Habrá que esperar a que el proceso de compilación termine y genere los programas ejecutables resultado, junto a otros archivos que también genera el compilador, cuya utilidad es desconocida al redactor.
 
En la consola de resultados debería aparecer algo similar a esto cuando una compilación exitosa haya acabado:

========== Generar: 4 correctos, 0 incorrectos, 0 actualizados, 0 omitidos ==========

 
Lo cual significaría que, si se ha marcado la selección de la imagen anterior para compilar, se han generado login-server.exe, map-server.exe, char-server.exe y mapcache.exe (junto a los otros que se también se producen al compilar con Visual C++). Los archivos generados en total por Visual C++ son los siguientes:
 

PZ04z4f.png

 
¡Ya se ha compilado Hercules con éxito!
 
En caso de querer recompilar el servidor, es recomendable primero limpiar los programas generados (opción Limpiar selección) y luego volver a generarlos. Para limpiar la selección es obligatorio que no esté en uso, si no, la limpieza no será completa porque no se puede mover, sobrescribir o eliminar ningún archivo que se esté ejecutando. También es posible el uso de la opción Volver a generar selección para tal efecto.


 
¡Y ya está! ¿A que no es tan complicado compilar Hercules desde Windows? Definitivamente, cuesta más trabajo instalar Microsoft Visual C++ o Visual Studio que compilar el servidor.
 
¿Parece una guía muy larga y prefieres no leerla? Muy bien. He aquí una versión resumida:

  • [*]Si no lo tienes ya, descarga Microsoft Visual C++ Express o Visual Studio (que contiene VC++) y abre la solución de Hercules que corresponda. [*]Selecciona login, map, char server y mapcache en el explorador de soluciones, haz click derecho y selecciona
Generar selección. [*]Espera a que compile. Listo.

Eso es todo. Muchísimo más fácil de lo que parecía en un principio, ¿verdad?

Share this post


Link to post
Share on other sites

Preguntas frecuentes:

He colocado la sección en otro post para facilitar su redacción y búsqueda.

Aunque espero que no haya prácticamente ninguna pregunta en esta sección porque me gustaría creer que he sido suficientemente claro, es obvio que las cosas no son así y es normal "atascarse" en alguna parte de la guía, inauguro esta sección. Como es usual en estas secciones de Preguntas y Respuestas, las preguntas las marcaré con una P y las respuestas las marcaré con una R, ambas bien grandes para que se vean en condiciones.

Lista de preguntas:

 

 

 

  • [*]No puedo abrir archivos .sln con doble click. ¿Qué ocurre? [*]Al compilar me sale que se ha generado algún archivo incorrecto. ¿Qué ocurre? [*]Visual Studio me crea más archivos que solo los ejecutables de los servidores. ¿Qué son? [*]Al limpiar la solución me sale correcto pero recibo warnings. ¿Qué ocurre?

 

Preguntas y respuestas:
 

P: No puedo abrir archivos .sln con doble click. ¿Qué ocurre?

R: Esos archivos se relacionan con Visual Studio, no con Visual C++. Si no puedes abrirlos así, intenta abrirlos haciendo click derecho en ellos, seleccionar Abrir con y dentro del submenú escoger vuestra versión de Microsoft Visual C++. También, si solo se va a compilar proyectos en C o C++, puede ser aconsejable asociar la extensión .sln a Microsoft Visual C++.

 

P: Al compilar me sale que se ha generado algún archivo incorrecto. ¿Qué ocurre?
R: Es posible que esto ocurra por uno de dos posibles motivos:

  • Si aparece un error interno del compilador: el problema es del propio compilador, no de Hercules. Al intentar compilar más de un proyecto a la vez (como se hace en la guía), es posible que se corrompan los datos y se produzca el error interno del compilador. Lo más probable es que desaparezca si se intenta compilar de nuevo o, si persiste, la mejor opción es desactivar la compilación paralela cambiando una configuración. En el menú Herramientas seleccionar Opciones... En la ventana emergente seleccionar el grupo Proyectos y Soluciones y dentro de éste Configuración de proyecto de VC++. La configuración Máximo de compilaciones de C++ concurrentes debe cambiarse a 1, y posteriormente hacer click en el botón Aceptar. Los errores internos de compilador se notifican explícitamente como tal. (¡Gracias a @Xgear por ofrecernos la solución!)
  • Si aparece un error normal, esto es debido a algún error en la escritura del propio código. Si lo has introducido tú mismo o cualquier modificación que hayas hecho, utiliza la información que se te da para intentar arreglarlo. En otro caso, puedes pedir ayuda en el foro o, en caso de que el error esté directamente provocado en el repositorio oficial de Hercules, puedes abrir un reporte de bug (por favor, en inglés) en el rastreador de bugs (bug tracker).

 

P: Visual Studio me crea más archivos que solo los ejecutables de los servidores. ¿Qué son?
R: Realmente, no sé qué son y parecen prescindibles, aunque parece que los propios archivos mejoran un poco el rendimiento del entorno de desarrollo mientras tienes cargada esa solución. No es mala idea mantenerlos por si acaso, pero tampoco hay ningún problema si los eliminas.

 

P: Al limpiar la solución me sale correcto pero recibo warnings. ¿Qué ocurre?
R: La solución no se ha limpiado correctamente. Esto es debido a que con un 99% de seguridad bien tú o tu sustema operativo estaba ejecutando alguno de los programas que se iban a limpiar. Para solucionar esto simplemente tienes que parar la ejecución del programa que se busque limpiar y reintentar la limpieza.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.