elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  ¿Cómo instalar bibliotecas en codeblocks?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] 3 Ir Abajo Respuesta Imprimir
Autor Tema: ¿Cómo instalar bibliotecas en codeblocks?  (Leído 32,037 veces)
Ferno


Desconectado Desconectado

Mensajes: 375


Ver Perfil
Re: ¿Cómo instalar bibliotecas en codeblocks?
« Respuesta #10 en: 16 Junio 2012, 22:18 pm »

Siempre fue un poco rebuscado usar estas librerías.
Si vas a compilar desde un IDE, prueba leer esto:

http://wiki.allegro.cc/index.php?title=END_OF_MAIN

El END_OF_MAIN creo que era necesario para salvar algunos problemas que surgían de que en Windows se utilice el WinMain.
Puede que con eso se solucione, leete esa wiki que es corta y buscá ejemplos de como usar el END_OF_MAIN en un programa.
Espero que se solucione, saludos!


En línea

DickGumshoe


Desconectado Desconectado

Mensajes: 480



Ver Perfil WWW
Re: ¿Cómo instalar bibliotecas en codeblocks?
« Respuesta #11 en: 16 Junio 2012, 22:34 pm »

Muchas gracias por responder, Ferno.

Sí, el END_OF_MAIN lo pongo en el programa. Lo que hago es esto:

Código
  1. #include <allegro.h>
  2.  
  3. int main()
  4. {
  5. allegro_init();
  6. install_keyboard();
  7.  
  8. set_color_depth(32);
  9. set_gfx_mode(GFX_AUTODETECT_WINDOWED, 640, 700, 0, 0);
  10.  
  11. BITMAP *buffer = create_bitmap(640, 700);
  12. clear_to_color(buffer, 0x333333);
  13.  
  14. rect(buffer, 1, 1, 51, 51, 0x21D059);
  15. rect(buffer, 2, 2, 50, 50, 0x21D059);
  16. rect(buffer, 3, 3, 49, 49, 0x21D059);
  17.  
  18. textout_centre_ex(buffer, font, ALLEGRO_VERSION_STR, 320, 5, 0xFFFFFF, 0x333333);
  19.  
  20. rectfill(buffer, 50, 100, 550, 600, 0xDF1680);
  21.  
  22. blit(buffer, screen, 0, 0, 0, 0, 640, 700);
  23.  
  24. readkey();
  25.  
  26. destroy_bitmap(buffer);
  27.  
  28. return 0;
  29. }
  30. END_OF_MAIN()
  31.  

Por supuesto, antes de hacer el intento de compilar he seguido infinitos manuales en los que viene lo mismo (que meta tres carpetas (bin, lib e include en unos directorios que me indican) y los tres archivos .dll en la carpeta donde compilaré el proyecto y se creará el .exe, pero nada...

El error que me da es:

Citar
ld.exe||cannot find -lalld|
||=== Build finished: 1 errors, 0 warnings ===|

Muchas gracias, saludos.


En línea

Ferno


Desconectado Desconectado

Mensajes: 375


Ver Perfil
Re: ¿Cómo instalar bibliotecas en codeblocks?
« Respuesta #12 en: 16 Junio 2012, 22:58 pm »

¿Probaste incluir <windows.h>?
Cuando usé allegro alguna vez según recuerdo tenía que incluir alguna librería de Windows (aunque a esta altura no recuerdo exactamente cuál era). Más aún, había que incluirla antes que la librería de allegro, porque sino había un problema de referencias (no me adentré a fondo en ese tema, con que compilara ya me satisfació y decidí no tocarlo más, grave error, pero buen).
En línea

DickGumshoe


Desconectado Desconectado

Mensajes: 480



Ver Perfil WWW
Re: ¿Cómo instalar bibliotecas en codeblocks?
« Respuesta #13 en: 16 Junio 2012, 23:06 pm »

Incluyendo windows.h antes de allegro.h me da los siguiente errores:

Código:
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\allegro\system.h|31|error: using typedef-name 'BITMAP' after 'struct'|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\wingdi.h|1353|error: 'BITMAP' has a previous declaration here|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\allegro\system.h|209|error: using typedef-name 'BITMAP' after 'struct'|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\wingdi.h|1353|error: 'BITMAP' has a previous declaration here|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\allegro\system.h|210|error: using typedef-name 'BITMAP' after 'struct'|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\wingdi.h|1353|error: 'BITMAP' has a previous declaration here|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\allegro\system.h|211|error: using typedef-name 'BITMAP' after 'struct'|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\wingdi.h|1353|error: 'BITMAP' has a previous declaration here|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\allegro\system.h|211|error: using typedef-name 'BITMAP' after 'struct'|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\wingdi.h|1353|error: 'BITMAP' has a previous declaration here|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\allegro\system.h|212|error: using typedef-name 'BITMAP' after 'struct'|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\wingdi.h|1353|error: 'BITMAP' has a previous declaration here|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\allegro\system.h|212|error: using typedef-name 'BITMAP' after 'struct'|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\wingdi.h|1353|error: 'BITMAP' has a previous declaration here|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\allegro\system.h|213|error: using typedef-name 'BITMAP' after 'struct'|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\wingdi.h|1353|error: 'BITMAP' has a previous declaration here|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\allegro\mouse.h|74|error: using typedef-name 'BITMAP' after 'struct'|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\wingdi.h|1353|error: 'BITMAP' has a previous declaration here|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\allegro\mouse.h|74|error: invalid type in declaration before ';' token|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\allegro\mouse.h|99|error: using typedef-name 'BITMAP' after 'struct'|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\wingdi.h|1353|error: 'BITMAP' has a previous declaration here|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\allegro\mouse.h|109|error: using typedef-name 'BITMAP' after 'struct'|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\wingdi.h|1353|error: 'BITMAP' has a previous declaration here|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\allegro\mouse.h|112|error: using typedef-name 'BITMAP' after 'struct'|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\wingdi.h|1353|error: 'BITMAP' has a previous declaration here|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\allegro\3d.h|29|error: using typedef-name 'BITMAP' after 'struct'|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\wingdi.h|1353|error: 'BITMAP' has a previous declaration here|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\allegro\3d.h|67|error: using typedef-name 'BITMAP' after 'struct'|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\wingdi.h|1353|error: 'BITMAP' has a previous declaration here|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\allegro\3d.h|67|error: using typedef-name 'BITMAP' after 'struct'|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\wingdi.h|1353|error: 'BITMAP' has a previous declaration here|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\allegro\3d.h|68|error: using typedef-name 'BITMAP' after 'struct'|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\wingdi.h|1353|error: 'BITMAP' has a previous declaration here|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\allegro\3d.h|68|error: using typedef-name 'BITMAP' after 'struct'|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\wingdi.h|1353|error: 'BITMAP' has a previous declaration here|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\allegro\3d.h|69|error: using typedef-name 'BITMAP' after 'struct'|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\wingdi.h|1353|error: 'BITMAP' has a previous declaration here|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\allegro\3d.h|69|error: using typedef-name 'BITMAP' after 'struct'|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\wingdi.h|1353|error: 'BITMAP' has a previous declaration here|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\allegro\3d.h|70|error: using typedef-name 'BITMAP' after 'struct'|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\wingdi.h|1353|error: 'BITMAP' has a previous declaration here|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\allegro\3d.h|70|error: using typedef-name 'BITMAP' after 'struct'|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\wingdi.h|1353|error: 'BITMAP' has a previous declaration here|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\allegro\3d.h|71|error: using typedef-name 'BITMAP' after 'struct'|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\wingdi.h|1353|error: 'BITMAP' has a previous declaration here|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\allegro\3d.h|71|error: using typedef-name 'BITMAP' after 'struct'|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\wingdi.h|1353|error: 'BITMAP' has a previous declaration here|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\allegro\3d.h|72|error: using typedef-name 'BITMAP' after 'struct'|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\wingdi.h|1353|error: 'BITMAP' has a previous declaration here|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\allegro\3d.h|72|error: using typedef-name 'BITMAP' after 'struct'|
||More errors follow but not being shown.|
||Edit the max errors limit in compiler options...|
||=== Build finished: 50 errors, 0 warnings ===|

Saludos.
En línea

Ferno


Desconectado Desconectado

Mensajes: 375


Ver Perfil
Re: ¿Cómo instalar bibliotecas en codeblocks?
« Respuesta #14 en: 16 Junio 2012, 23:26 pm »

A ver, buscando encontré que entre los includes de windows.h y allegro.h podrías incluir:

Código
  1. #include <winalleg.h>

Prueba y contanos.

Perdón que no pueda darte una respuesta precisa, pero como te dije, hace años que no uso allegro y tampoco lo usé demasiado!
En línea

DickGumshoe


Desconectado Desconectado

Mensajes: 480



Ver Perfil WWW
Re: ¿Cómo instalar bibliotecas en codeblocks?
« Respuesta #15 en: 16 Junio 2012, 23:33 pm »

Muchas gracias, Ferno.

Si incluyo <winalleg.h> antes de <allegro.h> automáticamente se me abre una pestaña de winalleg.h que dice:

   #error Please include allegro.h before winalleg.h!

Así, he probado todas las combinaciones entre esas dos librerías y windows.h, y nada...

No te preocupes si no puedes, Ferno. Muchas gracias.

Saludos...
En línea

DickGumshoe


Desconectado Desconectado

Mensajes: 480



Ver Perfil WWW
Re: ¿Cómo instalar bibliotecas en codeblocks?
« Respuesta #16 en: 17 Junio 2012, 00:00 am »

Bueno, viendo que no voy a conseguir nunca usar allegro...

¿Podríais recomendarme otra librería gráfica que sea fácil de usar, que tenga manuales en español y buenos y permita hacer, por ejemplo, un videojuego?

Saludos y gracias.

EDITO: También que se pueda usar fácilmente en Codeblocks, a ver si me va a pasar lo mismo que con Allegro y voy a pasarme otro día entero intentando utilizarla  :-[
« Última modificación: 17 Junio 2012, 00:01 am por DickGumshoe » En línea

Ferno


Desconectado Desconectado

Mensajes: 375


Ver Perfil
Re: ¿Cómo instalar bibliotecas en codeblocks?
« Respuesta #17 en: 17 Junio 2012, 00:01 am »

No desistas amigo! Yo estuve en tu mismo problema cuando lo usé y terminé solucionándolo.
Pero si ya estás decidido, podés usar SDL. Hay PDFs con ejemplos y tutoriales para crear juegos simples. También tiene una muy buena documentación online.
En línea

DickGumshoe


Desconectado Desconectado

Mensajes: 480



Ver Perfil WWW
Re: ¿Cómo instalar bibliotecas en codeblocks?
« Respuesta #18 en: 17 Junio 2012, 00:04 am »

Bueno, seguiré intentándolo durante el día de hoy. Pero cuando consigo solucionar un error... Viene otro. Y lo raro es que nadie comenta nada por Internet...

Sino, utilizaré SDL.

Gracias de nuevo por responder.
En línea

Foxy Rider


Desconectado Desconectado

Mensajes: 2.407


Deprecated


Ver Perfil WWW
Re: ¿Cómo instalar bibliotecas en codeblocks?
« Respuesta #19 en: 17 Junio 2012, 02:20 am »

Citar
ld.exe||cannot find -lalld|
||=== Build finished: 1 errors, 0 warnings ===|

es alleg, no alld ... fijate que en otro hilo señalaba esta diferencia ...  saludos ♥
En línea

Páginas: 1 [2] 3 Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines