Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: DickGumshoe en 14 Junio 2012, 22:50 pm



Título: ¿Cómo instalar bibliotecas en codeblocks?
Publicado por: DickGumshoe en 14 Junio 2012, 22:50 pm
Hola.

Me gustaría poder instalar nuevas bibliotecas (/librerías) en Codeblocks para poder hacer mejores programas, pero por más que busco en Internet no encuentro nada...

¿Alguien podría decirme cómo se pueden instalar en Codeblocks?

Saludos y muchas gracias.


Título: Re: ¿Cómo instalar bibliotecas en codeblocks?
Publicado por: x64core en 15 Junio 2012, 09:14 am
yo recomiendo VC  ::) 0 problemas


Título: Re: ¿Cómo instalar bibliotecas en codeblocks?
Publicado por: DickGumshoe en 15 Junio 2012, 15:16 pm
Pero la pregunta no es qué IDE es mejor... Lo que me pasa es que no sé cómo instalar librerías en CodeBlocks...


Título: Re: ¿Cómo instalar bibliotecas en codeblocks?
Publicado por: DickGumshoe en 15 Junio 2012, 21:39 pm
¿Nadie puede ayudarme?  :-(


Título: Re: ¿Cómo instalar bibliotecas en codeblocks?
Publicado por: 0xDani en 15 Junio 2012, 22:27 pm
Yo tambien uso code::blocks, pero cuando uso una libreria que no detecta compilo por consola.

Saludos ;D


Título: Re: ¿Cómo instalar bibliotecas en codeblocks?
Publicado por: DickGumshoe en 15 Junio 2012, 22:59 pm
Creo que he encontrado la solución en un vídeo: http://www.youtube.com/watch?v=Uxv1tf6n2q4

No obstante, tengo que probarlo.

Muchas gracias por tu respuesta, intentaré hacerlo así también.

Saludos.


Título: Re: ¿Cómo instalar bibliotecas en codeblocks?
Publicado por: Foxy Rider en 16 Junio 2012, 01:50 am
¿Nadie puede ayudarme?  :-(

¿Donde tenés la librería que querés agregar o cual es? En las mismas opciones del proyecto podés agregar el path a includes y librerías .... que también pueden agregarse para TODO el IDE.
Acá hay un ejemplo con SDL: http://wiki.codeblocks.org/index.php?title=Using_SDL_with_Code::Blocks

No lo tengo instalado como para sacar una captura, pero en las mismas opciones de proyecto está ...

Saludos.

P.S → En Code::Blocks no se instalan (salvo que sea linux y se agreguen sola a los directorios estándar), sino que le decís donde están y de ahí las usa :B


Título: Re: ¿Cómo instalar bibliotecas en codeblocks?
Publicado por: DickGumshoe en 16 Junio 2012, 14:44 pm
Muchas gracias por responder, vertexSymphony.

Sí, es verdad que no se instalan. Mientras pueda programar con librerías descargadas, me da igual de la forma que lo haga.

Quiero instalar Allegro.h (versión 4).

Seguí algunos manuales en los que vienen los mismos pasos: http://www.comoustedyasabe.com.ar/datos/Segundo/2do_cuatrimestre/A_y_D_de_Algoritmos_II/Allegro_Code_Blocks/Allegro_Code_Blocks.pdf

Lo hago tal y como dice ahí, pero al compilar, me da error:

Citar
||=== Prueba, Debug ===|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\libmingw32.a(main.o):main.c|| undefined reference to `WinMain@16'|
||=== Build finished: 1 errors, 0 warnings ===|

No sé qué hacer...

Muchas gracias.

Saludos.


Título: Re: ¿Cómo instalar bibliotecas en codeblocks?
Publicado por: 0xDani en 16 Junio 2012, 16:23 pm
Tambien me pasa lo mismo, sigo sin poder compilar allegro.h

Saludos ;D


Título: Re: ¿Cómo instalar bibliotecas en codeblocks?
Publicado por: DickGumshoe en 16 Junio 2012, 21:03 pm
Bueno, entonces creo que haré lo que me dijo daniyo de compilar por consola.

¿Alguien podría decirme cómo compilo por consola? Sé que en Linux es sencillo, pero actualmente estoy usando Windows 7 y no sé cómo se hace...

Saludos y gracias.


Título: Re: ¿Cómo instalar bibliotecas en codeblocks?
Publicado por: Ferno 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!


Título: Re: ¿Cómo instalar bibliotecas en codeblocks?
Publicado por: DickGumshoe 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.


Título: Re: ¿Cómo instalar bibliotecas en codeblocks?
Publicado por: Ferno 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).


Título: Re: ¿Cómo instalar bibliotecas en codeblocks?
Publicado por: DickGumshoe 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.


Título: Re: ¿Cómo instalar bibliotecas en codeblocks?
Publicado por: Ferno 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!


Título: Re: ¿Cómo instalar bibliotecas en codeblocks?
Publicado por: DickGumshoe 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...


Título: Re: ¿Cómo instalar bibliotecas en codeblocks?
Publicado por: DickGumshoe 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  :-[


Título: Re: ¿Cómo instalar bibliotecas en codeblocks?
Publicado por: Ferno 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.


Título: Re: ¿Cómo instalar bibliotecas en codeblocks?
Publicado por: DickGumshoe 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.


Título: Re: ¿Cómo instalar bibliotecas en codeblocks?
Publicado por: Foxy Rider 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 ♥


Título: Re: ¿Cómo instalar bibliotecas en codeblocks?
Publicado por: DickGumshoe en 17 Junio 2012, 14:13 pm
¡Muchísimas gracias! Gracias a ti he solucionado el problema  :D

No sé por qué venía por defecto -lalld en Codeblocks...

Saludos.