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

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  linkado en c++? allegro5/allegro.h
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: linkado en c++? allegro5/allegro.h  (Leído 2,899 veces)
kraiked

Desconectado Desconectado

Mensajes: 22


Ver Perfil
linkado en c++? allegro5/allegro.h
« en: 21 Julio 2016, 23:01 pm »

Hola, acabo de empezar a programar en c++. La cosa es que me he bajado las bibliotecas de Allegro5 y cuando realizo este programa para iniciar una ventana:
Código:
 #include <iostream>
#include <stdlib.h>
#include "stdio.h"
#include <allegro5/allegro.h>

using namespace std;

int main(int argc, char **argv){
 
   ALLEGRO_DISPLAY *display = NULL;
 
   if(!al_init()) {
      fprintf(stderr, "failed to initialize allegro!\n");
      return -1;
   }
 
   display = al_create_display(640, 480);

   if(!display) {
      fprintf(stderr, "failed to create display!\n");
      return -1;
   }
 
   al_clear_to_color(al_map_rgb(0,0,0));
 
   al_flip_display();
 
   al_rest(10.0);
 
   al_destroy_display(display);
 
   return 0;
}

y compilo con un makefile hecho por mi me sale que no reconoce las funciones de Allegro5. exactamente pone esto: "/home/****/Escritorio/comecocos_cpp/main_juego.cpp:15: referencia a `al_install_system' sin definir
/home/****/Escritorio/comecocos_cpp/main_juego.cpp:20: referencia a `al_create_display' sin definr " pero lo pone con todas sus funciones de allegro5 no solo con esas. Entonces creo que es un problema al linkear las bibliotecas, aunque tampoco estoy muy seguro.


el makefile es este:


Código:
CXX=g++
CFLAGS= -g -Wall -ansi -pedantic
LDFLAGS=-L/usr/lib -lallegro
INCLUDE=-I. -I/usr/include/allegro5

EJECUTABLE = juego

all: $(EJECUTABLE)

juego: main_juego.o
$(CXX) -o salida main_juego.o

main_juego.o: main_juego.cpp
$(CXX)  $(INCLUDE) $(CFLAGS) $(LDFLAGS) main_juego.cpp


Y como me acabo de iniciar en c++ pues no tengo mucha idea. Muchas gracias. Saludos


En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.705


🏴 Libertad!!!!!


Ver Perfil WWW
Re: linkado en c++? allegro5/allegro.h
« Respuesta #1 en: 21 Julio 2016, 23:23 pm »

Deberias de empezar con algo mas sencillo pero de igual manera valida que exista el directorio

/usr/include/allegro5

Saludos!


En línea

kraiked

Desconectado Desconectado

Mensajes: 22


Ver Perfil
Re: linkado en c++? allegro5/allegro.h
« Respuesta #2 en: 21 Julio 2016, 23:50 pm »

Saludos, gracias por responder. respecto a lo de empezar, bueno, se mas o menos c, que es lo que di 1º ing informatica. A lo mejor es un poco complicado empezar con allegro5 pero como tengo el verano por delante tengo tiempo de aprender c++ más allegro :)

Respecto a los directorios si que existen. Es más si compilo desde la terminal con este comando:

"****@****-desktop:~/Escritorio/comecocos_cpp$ g++ main_juego.cpp -o a.out -I/usr/include/allegro5 -L/usr/lib -lallegro"

SI que reconoce los archivos,compila perfectamente,  no genera ningún error.  y genera una salida, la cual puedo ejecutar y genera una pantalla, que es el objetivo de mi código.

Asi que supongo que el error estará en el makefile.

Muchas gracias por su tiempo y responderme :)
En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.705


🏴 Libertad!!!!!


Ver Perfil WWW
Re: linkado en c++? allegro5/allegro.h
« Respuesta #3 en: 22 Julio 2016, 00:00 am »

Citar
como tengo el verano por delante tengo tiempo de aprender c++ más allegro

 ;-) ;-) ;-)

Muy bien, lo bueno que si compilo asi, si el error estara en el makefile posiblemente alguno de los flags que tiene

Código:
CFLAGS= -g -Wall -ansi -pedantic

Seria de revisarlos de uno en uno a ver cual es el te pone los WARNINS (-Wall)  :xD

Saludos
En línea

kraiked

Desconectado Desconectado

Mensajes: 22


Ver Perfil
Re: linkado en c++? allegro5/allegro.h
« Respuesta #4 en: 22 Julio 2016, 13:56 pm »

El problema no está en que salgan warnings el problema esta en que no reconoce las funciones de Allegro5. ya que al compilar con el makefile sale esto:


/tmp/ccuudCEQ.o: En la función `main':
main_juego.cpp:(.text+0x23): referencia a `al_install_system' sin definir
main_juego.cpp:(.text+0x61): referencia a `al_create_display' sin definir
main_juego.cpp:(.text+0xa5): referencia a `al_map_rgb' sin definir
main_juego.cpp:(.text+0xda): referencia a `al_clear_to_color' sin definir
main_juego.cpp:(.text+0xdf): referencia a `al_flip_display' sin definir
main_juego.cpp:(.text+0xf7): referencia a `al_rest' sin definir
main_juego.cpp:(.text+0x103): referencia a `al_destroy_display' sin definir
collect2: error: ld returned 1 exit status


Lo que me da que pensar que no enlaza bien. Y más sabiendo que si compilo de forma manual desde la terminal si funciona
En línea

kraiked

Desconectado Desconectado

Mensajes: 22


Ver Perfil
Re: linkado en c++? allegro5/allegro.h
« Respuesta #5 en: 22 Julio 2016, 14:12 pm »

vale, acabo de encontrar el error, es una chorrada. Faltaba añadir un -c en el makefile

"main_juego.o: main_juego.cpp
   $(CXX) $(INCLUDE) $(LDFLAGS) $(CFLAGS) -c main_juego.cpp"

el "-c" es lo que me faltaba. Vaya chorrada. Muchas gracias por tus respuestas Alberto :) Un saludo
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Allegro
Programación C/C++
josevc 5 3,153 Último mensaje 29 Mayo 2019, 01:50 am
por AlvaroGPE
ayuda error al compilar c++ con ALLEGRO5
Programación C/C++
tomsb 2 2,412 Último mensaje 27 Noviembre 2016, 18:53 pm
por tomsb
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines