Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Instalar Allegro 5 para que funcione con CodeBlocks (SOLUCIONADO)

Iniciado por Battyhal, 02 de Octubre de 2014, 11:40:02 PM

« anterior - próximo »

Battyhal

  Muy buenas noches a todos :

Pues eso,como dice el asunto,me estoy volviendo loco perdido intentando instalar Allegro 5 para que funcione con CodeBlocks.Tengo la absurda y surrealista idea/obsesión de aprender a programar videojuegos (sencillitos) por pura diversión pero se me están quitando las ganas... :-\ . Uso Ubuntu 14.04 y he leido miles de mensajes de este y otros foros ,así como los wikis de Allegro.cc y tutoriales y la verdad es que estoy ya a punto de tirar el ordenata por la ventana y/o tirarme yo.
He instalado y desinstalado varias veces por el gestor de paquetes,luego lo he intentado compilando desde consola pero me sigue lanzando el mismo error al compilar un programilla :

"Allegro.h no existe el archivo o directorio"  >:( . Y tengo asociadas las bibliotecas en la pestaña "Linker Settings" de "Compiler" ,así como en "Build Options" en el proyecto pero nada .
Seguro que será que soy muy bestia y se me da pasa algo por alto pero ya no se que más intentar.
Si alguien pudiera ayudarme prometo mi amistad eterna ,así como mencionarle en los créditos (si es que algún dia consigo hacer algo mínimamente jugable,porque a este paso...) como pieza clave e indispensable del equipo .

Mil gracias y saludos . :D

Starky

Buenos días,

Yo solo quería darte ánimos y que no lo dejes porque una herramienta no te funcione, a último remedio prueba otra, por ejemplo Unity (creo que incluso en Linux se puede usar, sino pues Windows mismo).

En cualquier caso, a ver si alguien te puede ayudar.

Un saludo.

•Parra

#2
No uses Unity.

Es un problema de no añadir bien las cabeceras o librerias. Yo siempre lo suelo hacer a mano, asi no me equivoco.

Busca en tu disco duro la ruta por defecto de tu compilador (gcc o g++), que normalmente en linux viene por defecto instalado (suponiendo que en codeblocks estas usando estos también, y que no has instalado el codeblocks (ide) + su compilador propio).

Una vez encuentres el directorio del compilador, solo tienes que meter todos los .h en include, las librerias en lib, y poco más, con esto deberia de funcionar.

Esto es un proceso rutinario, que las primeras veces da mucho dolor de cabeza, pero que una vez te haces a tu entorno, es solo copiar/pegar archivos.

Un saludo, y suerte! No te desesperes, el programador ha de poder con su ordenador y no al reves.


PD: Para encontrar la ruta del compilador mas facilmente, revisalo desde la configuracion de codeblocks.

PD2: Una vez lo tengas metido en include/lib, desde linker settings has de incluir las librerias como -lNombreDeLaLibreria (si no recuerdo mal).

El -l indica que estan en el propio directorio del compilador.

Starky


•Parra

#4
Cita de: Starky en 06 de Octubre de 2014, 09:11:25 AM
¿Y por qué no usar Unity?
Paso de contestar a la pregunta.

Si el chaval quiere hacer un jueguito 2D con allegro y no puede incluir las librerias, la solucion no es usar Unity... hacerlo seria como tirar la toalla (habito que no es bueno en programacion).

Unity es para los diseñadores que no saben programar, o para programadores que ya saben y no quieren perder el tiempo. No es una buena herramienta de aprendizaje desde el punto de vista del programador en mi opinion.

Starky

Cuanto buen rollo desprendes amigo!! Menos mal que no requerías responder.

Unity es una herramienta integradora como otra cualquiera, si lo que quiere hacer juegos probablemente esté entre las mejores opciones, si lo que quiere es aprender a programar, también es una gran opción. Te quitas de todos los problemas del bajo nivel y aprendes a hacer juegos. Para profundizar ya tendrás tiempo. Donde digo Unity, digo UDK, Cocos2D o cualquier otra herramienta por el estilo.

Tirar la toalla es dejar de hacer juegos, cambiar a una herramienta que te facilite la vida y no reinvertar la rueda para mi no es mala decisión si no consigue utilizar Allegro.

En resumen y para no desvirtuar el hilo, yo solo le daba ánimos y que si una herramienta no te es útil existen otras, incluso a veces dan más rendimiento con menos esfuerzo.

•Parra

#6
Cita de: Starky en 06 de Octubre de 2014, 04:33:01 PM
Cuanto buen rollo desprendes amigo!! Menos mal que no requerías responder.

Unity es una herramienta integradora como otra cualquiera, si lo que quiere hacer juegos probablemente esté entre las mejores opciones, si lo que quiere es aprender a programar, también es una gran opción. Te quitas de todos los problemas del bajo nivel y aprendes a hacer juegos. Para profundizar ya tendrás tiempo. Donde digo Unity, digo UDK, Cocos2D o cualquier otra herramienta por el estilo.

Tirar la toalla es dejar de hacer juegos, cambiar a una herramienta que te facilite la vida y no reinvertar la rueda para mi no es mala decisión si no consigue utilizar Allegro.

En resumen y para no desvirtuar el hilo, yo solo le daba ánimos y que si una herramienta no te es útil existen otras, incluso a veces dan más rendimiento con menos esfuerzo.

En fin como quieras, pero no viene a cuento de nada, el chaval eligió Allegro, yo solo trato de solucionar sus dudas.

Battyhal

Hola .
En primer lugar pido perdón por tardar tanto en contestar.Lo de trabajar fines de semana y a turnos y otras cosas que no vienen al caso es lo que tiene  :-\ .

En segundo ,muchas gracias por los ánimos y por la información Parra y Starky . Sigo luchando con las librerias y las configuraciones y la buena noticia es que ya consigo que se ejecute "algo" .Estoy siguiendo un curso llamado "Curso de programación de videojuegos con C++ y Allegro " que encontré por aquí y ,por lo menos,ya se ejecuta la primera pieza de código (que cambio el modo gráfico a 640 x 480  y muestra la pantalla en negro con un "mi primer programa"  en blanco nuclear en todo el centro ni más ni menos  ^_^ ) y ,aunque la segunda pieza de código ya vuelve a lanzar un montón de errores al compilar y voy muuuuy lento por la falta de tiempo disponible, creo que acabaré consiguiendo que compile el resto del curso...o algo .
Y si no siempre lo puedo intentar en Windows que hay "autoinstaladores para dummies" como yo   :D

¡Mil gracias! .

•Parra


raysan

Battyhal, ¿por qué no pruebas a utilizar raylib (www.raylib.com)?

Yo mismo la he creado y funciona excelentemente bien con mis alumnos.

Además, puedes descargarte el instalador de raylib que te lo configura automaticamente todo.

Saludos!

Battyhal

#10
Hola de nuevo...y de nuevo mis excusas por tardar milenios en conectarme  ^_^'

Voy a relatar mis nuevas "aventuras" :

He desinstalado todo Allegro (5,4 y todo lo que he encontrado con ese nombre en Synaptic) y CodeBlocks ,y he vuelto a instalar pasito a pasito siguiendo el wiki de Allegro 5 .La instalación de Allegro finalizó sin ningún fallo al contrario que las otras veces.La de CodeBlocks igualmente exitosa (anda que si no lo consigo instalar desde el centro de software de Ubuntu ,ya si que me retiro jejeje ) ,incluyendo los enlaces a bibliotecas en las pestañas corespondientes (o eso creía) y al compilar el programilla de prueba del curso de videojuegos en C++ ya no funciona otra vez  :'(.Que negado soy .Pero voy a seguir intentando.

Parra,me preguntabas por el log del compilador.Voy a pasarte el actual ,aquel ya no viene al caso :

- Este es el código :

#include <stdio.h>
#include <stdlib.h>
#include <allegro.h>

int main ()
{
    allegro_init();
    install_keyboard();
    if (set_gfx_mode(GFX_AUTODETECT,320,200,0,0,) < 0)
    {
        printf("error al iniciar modo grafico\n");
        allegro_exit();
        exit(-1);

    }
    textout(screen, font, "Mi primer programa",0,0,15);
    readkey();
    allegro_exit();
    return 0;
}

Y estos los errores :

||=== Build: Debug in ik (compiler: GNU GCC Compiler) ===|
/home/ik/Documentos/C/ik/alegro1.c||In function 'main':|
/home/ik/Documentos/C/ik/alegro1.c|8|warning: implicit declaration of function 'allegro_init' [-Wimplicit-function-declaration]|
/home/ik/Documentos/C/ik/alegro1.c|9|warning: implicit declaration of function 'install_keyboard' [-Wimplicit-function-declaration]|
/home/ik/Documentos/C/ik/alegro1.c|10|warning: implicit declaration of function 'set_gfx_mode' [-Wimplicit-function-declaration]|
/home/ik/Documentos/C/ik/alegro1.c|10|error: 'GFX_AUTODETECT' undeclared (first use in this function)|
/home/ik/Documentos/C/ik/alegro1.c|10|note: each undeclared identifier is reported only once for each function it appears in|
/home/ik/Documentos/C/ik/alegro1.c|10|error: expected expression before ')' token|
/home/ik/Documentos/C/ik/alegro1.c|13|warning: implicit declaration of function 'allegro_exit' [-Wimplicit-function-declaration]|
/home/ik/Documentos/C/ik/alegro1.c|17|warning: implicit declaration of function 'textout' [-Wimplicit-function-declaration]|
/home/ik/Documentos/C/ik/alegro1.c|17|error: 'screen' undeclared (first use in this function)|
/home/ik/Documentos/C/ik/alegro1.c|17|error: 'font' undeclared (first use in this function)|
/home/ik/Documentos/C/ik/alegro1.c|18|warning: implicit declaration of function 'readkey' [-Wimplicit-function-declaration]|
||=== Build failed: 4 error(s), 6 warning(s) (0 minute(s), 0 second(s)) ===|


¡Y Mil gracias por el tiempo y la ayuda!.



Battyhal

Raysan he visitado tu página y veo que ,de momento, raylib sólo se puede usar en windows y quería dejar de lado ese sistema por ahora porque estoy bastante ilusionado con el tema del software libre y de código abierto y quiero seguir aprendiendo .Te preguntarás por qué me quiero complicar la vida si ni siquiera soy capaz de instalar y hacer funcionar algo en Linux para empezar a aprender algo (a veces me lo pregunto yo también no creas) pero quiero por lo menos intentarlo  . Pero eso si,¡tengo que felicitarte, Raysan,no puedo ni imaginarme lo que debes controlar para hacer no sólo juegos ,sino encima bibliotecas y herramientas para desarrollarlos!.Ojalá algún dia sepa la décima parte que tú jajaja.
También me ha intrigado lo de tus alumnos,si das algún curso en línea o algo así me gustaría recibir información (aunque no se si este es el sitio correcto para preguntar...pido disculpas en caso de que no lo sea  ^_^'
).

•Parra

#12
Si, es por las librerias como te decia antes.

En propiedades de proyecto podras añadirlas. Te dejo un minitutorial:

http://stackoverflow.com/questions/5862757/how-do-i-link-to-a-library-with-codeblocks

Si no especificas la ruta absoluta, se toma por defecto la carpeta ./lib del compilador (que en tu caso sera gcc seguramente).

Si ya te aparecen linkeadas en codeblocks entonces es que te falta meterlas en la carpeta ./lib del compilador (que justo ahora no se que ruta tiene en linux, pero en mingw windows es algo como /archivos de programa/mingw/lib).

En teoria el instalador de Allegro deberia hacer referencia a su carpeta (no es necesario meterlas siempre en ./lib, puede referenciarse), pero parece que no se ha hecho bien esa parte. Por lo tanto pegandolo directo en lib solucionaras el problema (todo esto en caso de que te aparezcan ya linkeadas en el proyecto).

raysan

Hola Battyhal,

Muchísimas gracias por tus halagos, realmente me ha llevado bastante trabajo crear raylib y hacerla una librería eficiente y fácil de utilizar.

Respecto lo que comentas del software libre, raylib puede funcionar en prácticamente cualquier plataforma que soporte alguna versión de OpenGL y el lenguaje de programación C; sobre todo en plataformas como Windows, Linux y OSX. En la web ofrezco un instalador para Windows que, a parte de raylib, incluye el editor de código Notepad++ y el compilador de C MinGW, pero puedes utilizar raylib desde cualquier sistema operativo. De hecho esta semana pasada un alumno estuvo trabajando desde OSX con Xcode. Trabajar desde Linux es todavía más facil!

En las próximas semanas intentaré preparar algún pequeño paquete e instrucciones para instalar y utilizar raylib en esos sistemas operativos, de veras que no es dificil.

Doy clases de programación de videojuegos en un centro privado, mis alumnos tienen un perfil altamente artístico y la mayoría no han escrito una linea de código en su vida. Todos ellos acaban programando (y entendiendo) un videojuego sencillo... para eso creé raylib! :D

Battyhal

#14
¡¡¡ Por fin funciona !!! . ¡Mil millones de gracias Parra!.Y lo prometido es deuda,si consigo llegar a hacer algo digno de mención por supuesto que estarás en los créditos  :)  . ¡Ahora a practicar!.

Pd: por cierto que con tanta emoción no he explicado lo que pasaba  ;).Resulta que tenia instalado Allegro 4 y Allegro 5 (después de tanta instalación y desinstalación no sabia ni lo que tenia) y el manual que estaba siguiendo cuyos ejemplos trataba de hacer funcionar era para Allegro 4.Supongo que al tener en la pestaña "other linker settings" del compilador de c::b las opciones para Allegro 4 y 5 juntas y no tener bien linkadas las bibliotecas de Allegro (tenia linkadas las de Allegro 5 solo,las de Allegro 4 no se ni donde estaban instaladas la verdad ) se debia volver un poco loco y por eso lanzaba errores por todos lados .Ahora he dejado solo las opciones de Allegro 5 (es decir `pkg-config --libs allegro-5.0`
) y los ejemplos de los wikis funcionan perfectamente .Lo único que tendré que buscar otro curso a seguir o empollarme los wikis a fondo que parece que tienen muy buenas explicaciones e incluso videos .¡Allá voy! ;)
     






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.