Anuncios Google

No puedo usar clases :(

Pues resulta que no sé por que pero estoy teniendo muchos problemas
para usar clases, directamente no me reconoce el comando , lo he
intentado con i ostream (lo escribo así para poder poner el post XD),
pero no me encuentra esa librería, tambien lo he intentado con s tdlib
(no se si tiene que ver) y nada de nada, la encuentra, pero sigue sin
reconocer clases, ¿alguien sabe que puede ser?

 

saludos!


Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de copete23

No sé, esque es rarisimo, y

No sé, esque es rarisimo, y en principio el formato creo que no tiene nada que ver, tal vez me falte alguna libreria, pero no se cual ¿?

 

Imagen de copete23

no, sé, lo intentaré,

no, sé, lo intentaré, ¿como esta escrito?

Imagen de copete23

Anda mira, ahora si, ni se

Anda mira, ahora si, ni se me habia ocurrido que pudiese ser eso XD  muchas gracias tio.

 

saludos!

Imagen de copete23

ups.. perdon, sigue sin

ups.. perdon, sigue sin funcionar, :(  nada, sigo igual.........

Las clases no tienen nada

Las clases no tienen nada que ver con librerías ni con defines. Sin embargo... prueba esto:

 

#ifndef __cplusplus
#error "Compilando en C"
#endif

 

Si te sale el error, estás compilando en C (que es lo más probable) y seguramente te toque ver si es problema del Makefile, o a saber...

Imagen de copete23

efectivamente.... bueno,

efectivamente.... bueno, miraré el make a ver

Imagen de copete23

Nada, el make parece estar

Nada, el make parece estar bien.... a saber que puede ser Llora

Pues ni idea... ¿Tienes

Pues ni idea... ¿Tienes archivos en C y C++? Igual el problema es porque desde algún archivo .c se accede a la clase...

 

Si no es eso, pon el Makefile para ver si es eso...

Imagen de copete23

Estan todos en c, he

Estan todos en c, he intentado tambien en cpp pero da lo mismo, el caso es que en otro pc donde tengo instalada la misma copia de devkitpro, con los mismos makes y funciona bien, ¿? es solo en mi pc, he reistalado el devkitArm y nada de nada tambien libnds por si las moscas, y lo mismo... es rarisimo, ya no se que puede ser..... como no sea el pc ¿?

 

Best_guitar:

si, en el ejemplo no puse el ponto y coma pero si los tengo puestos, en mi codigo, pero como si nada :(

Imagen de best_guitar

joe, no se

¿que error te da el complicador?

Para empezar, si están

Para empezar, si están todos en .c no va a funcionar nunca. Empieza por cambiarlos a .cpp, y di el error que te da el compilador.

Imagen de copete23

Si ya lo he puesto así y

Si ya lo he puesto así y nada.... el error que me da es este:

 

error: expected '=', ',', ';', 'asm' or '__attribute__' before 'mdModel'
make[1]: *** [loader.o] Error 1
make: *** [build] Error 2

 

y este es el make (en el otro pc funciona)

 

#---------------------------------------------------------------------------------
# Please uncomment (i.e. delete the '#') only one "ARM7_SELECTED" line. If unsure,
# just uncomment "ARM7_SELECTED = ARM7_BASIC". ARM7_BASIC is the same as ARM7_MP3.
#---------------------------------------------------------------------------------
 
ARM7_SELECTED = ARM7_BASIC
#ARM7_SELECTED = ARM7_MOD_DSWIFI
#ARM7_SELECTED = ARM7_MOD_LIBLOBBY
#ARM7_SELECTED = ARM7_MP3
#ARM7_SELECTED = ARM7_MP3_DSWIFI
#ARM7_SELECTED = ARM7_MP3_LIBLOBBY
#ARM7_SELECTED = ARM7_MIKMOD_DSWIFI
 
#---------------------------------------------------------------------------------
# If you're using EFS_lib, uncomment "USE_EFS = YES" here.
#---------------------------------------------------------------------------------
 
USE_EFS = YES
 
PATH := $(DEVKITARM)/bin:$(PATH)
PROGNAME =PAlib
OFILES +=
ADD_LIBS +=
 
#---------------------------------------------------------------------------------
# Be sure to change these default banner TEXTs. This is the name your project will
# display in the DS menu (including some flash cards). Create a custom LOGO.BMP
# icon for your project, too!
#---------------------------------------------------------------------------------
 
TEXT1 	:= PAlib Project -
TEXT2 	:= Change this text
TEXT3 	:= for your project!
ICON 	:= -b $(CURDIR)/../logo.bmp
 
#---------------------------------------------------------------------------------
# TARGET is the name of the file to output
# BUILD is the directory where object files and intermediate files will be placed
# SOURCES is a list of directories containing source code
# INCLUDES is a list of directories containing extra header files
#---------------------------------------------------------------------------------
 
TARGET		:= $(shell basename $(CURDIR))
BUILD		:= build
SOURCES		:= gfx source data
INCLUDES	:= include build data
 
#---------------------------------------------------------------------------------
# If you need to change other parts of the make process, see the PA_Makefile:
#---------------------------------------------------------------------------------
 
include $(PAPATH)/PA_Makefile
 
#---------------------------------------------------------------------------------
# no real need to edit anything past this point unless you need to add additional
# rules for different file extensions
#---------------------------------------------------------------------------------
ifneq ($(BUILD),$(notdir $(CURDIR)))
#---------------------------------------------------------------------------------
 
export OUTPUT	:=	$(CURDIR)/$(TARGET)
 
export VPATH	:=	$(foreach dir,$(SOURCES),$(CURDIR)/$(dir))
 
export CC		:=	$(PREFIX)gcc
export CXX		:=	$(PREFIX)g++
export AR		:=	$(PREFIX)ar
export OBJCOPY	:=	$(PREFIX)objcopy
 
#---------------------------------------------------------------------------------
# use CXX for linking C++ projects, CC for standard C
#---------------------------------------------------------------------------------
export LD		:=	$(CXX)
#export LD		:=	$(CC)
 
CFILES		:=	$(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.c)))
 
endif

 

PD: con el compilador de wii me pasa lo mismo Triste

Imagen de best_guitar

podria ser un fallo del

podria ser un fallo del devkitpro si el mismo programa te compila en otro PC...

has buscado en tu proyecto mdModel? a ver si se ha modificado por error algo de la libreria...

Saluds!!

Por lo que sé, la última

Por lo que sé, la última versión de palib tiene soporte para C++, descárgatela y prueba con los makefiles que tiene en los ejemplos.

 

Respecto a lo de la Wii, a saber... de todos modos, en ese makefile falta algo en plan "CPPFILES    :=    $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.cpp)))" para buscar los archivos .cpp.

Imagen de copete23

AntonioND: No sé, porque en

AntonioND:

No sé, porque en el otro pc me funciona usando el mismo make.... lo intentaré con el de las nuevas palib, pero me dá a mi que es otra cosa, porque que me pase exactamente lo mismo (mismo error y todo) con el compilador de wii, me mosquea ¿?

 

Best_guitar:

Que va, no se ha modificado nada, el error hace referencia a lo que hay antes de mdmodel, osea class

class mdModel{

..

...

};

y en el otro pc no me marca error XD, tambie he reistalado todo el devkit y na de na

 

pufff no entiendo como puede darme un error con esooooo!!

Aunque lo tuviera instalado,

Aunque lo tuviera instalado, daría igual. El comando make es el que es, hace lo mismo sea la implementación que sea. El problema es cosa de devkitARM /devkitPPC...

A lo mejor el compilador

A lo mejor el compilador solo lo hace en C. Nose, si nos pasas el make quizas te podamos decir mas.

 

Saludos!

Imagen de copete23

Hola almamu, pues yo creo

Hola almamu, pues yo creo que las pongo como siempre

class cosa

{

private:

...

...

public:

...

}

el problema es que no me reconoce el comando class ¿?

Imagen de best_guitar

Has puesto el ; final? class

Has puesto el ; final?

class cosa

{

private:

...

...

public:

...

};  <---

 

yo declaro la clase en los .h, por ejemplo asi...

#ifndef NAVEH
#define NAVEH

class NAVE
{
private:
  int x;
  int y;
  int vidas;
  int shootType;
  bool active;
public:
  NAVE(int m,int n, int lives) {x=m;y=n;vidas=lives;active=true;shootType=TORPEDOSIMPLE;};
  void InitNave(int m,int n, int lives,int t) {x=m;y=n;vidas=lives;active=true;shootType=t;};
  inline void SetX(int n){ x= n;};
  inline void SetY(int n){ y = n;};
  inline void SetXY(int m,int n){x = m;y = n;};
  inline void SetActive(){active=true;};
  inline void ResetActive(){active=false;};
  inline void SetShootType(int d){shootType = d;};
  inline int GetX(void){return x;};
  inline int GetY(void){return y;}; 
  inline int GetVidas(void){return vidas;};
  void MoveLeft(int velocidad){if(x-velocidad >= 0)x -= velocidad;};
  void MoveRight(int velocidad){if(x+velocidad <= 225)x += velocidad;};
  void MoveUp(int velocidad){if(y-velocidad >= 0)y -= velocidad;};
  void MoveDown(int velocidad){if(y+velocidad <= 360)y += velocidad;};
  inline void RestaVida(){vidas--;};
  inline bool GetActive(){return active;};
  inline int GetShootType(void){return shootType;};
};
#endif

 

Si alguna funcion es mas larga la creo en el .cpp. y no he tenido ningun problema...

Imagen de copete23

Es cpp, pero la clase esta

Es cpp, pero la clase esta dentro del header.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.