PDA

View Full Version : problema durante compilazione


Arpeda
24-04-2002, 03:16
Ciao ragazzi, durante la compilazione di un programma, ricevo questo errore:
In file included from MDIWindow.cc:35:
AudioCDChild.h:62: syntax error before `;'
make: *** [MDIWindow.o] Error 1
Il fatto è che io ci C++ o C che sia non conosco una mazza. l'errore dovrebbe stare nella riga che ho evidenziato con ******* . riuscite a darmi una mano?

class AudioCDChild : public GenericChild
{
public:
AudioCDChild(AudioCDProject *project);

private:
friend class AudioCDView;
AudioCDProject *project_;

TocReader tocReader;

SoundIF *soundInterface_;
unsigned long playLength_; // remaining play length
unsigned long playBurst_;
unsigned long playPosition_;
Sample *playBuffer_;
int playing_;
int playAbort_;

void play(unsigned long start, unsigned long end);
int playCallback();

******** list <AudioCDView *> views;

const char *sample2string(unsigned long sample);
unsigned long string2sample(const char *s);

void readTocCallback(int);
void saveAsTocCallback(int);

void tocBlockedMsg(const char *);

public:

void update(unsigned long level);
bool closeProject();
void record_to_cd();
AudioCDView *newView();
};
#endif
ciao
Arpeda

/\/\@®¢Ø
24-04-2002, 10:21
Che compilatore usi ?
Ad occhio sembra che non siano state dichiarate o la classe list<> o la classe AudioCDView.

Nel primo caso:
Se la list che usi e' quella della STL del C++, controlla che ci sia l'include giusto all'inizio del file ( #include <list> ). Se questa c'e' gia' , cambia list<...> in std::list<...> o in alternativa a questo scrivi in una qualche riga precedente using namespace std;

Nel secondo caso:
Devi includere l'header adatto per AudioCDView. In alternativa puoi semplicemente aggiungere class AudioCDView; nella riga precedente , ma comunque dovrai includere l'header adatto successivamente nel programma che lo usa.

Arpeda
24-04-2002, 11:21
ho risolto aggiungendo #include <list>.

grazie

Arpeda
24-04-2002, 11:38
ora ho un'altro problema, l'errore che ricevo è il seguente:

AudioCDProject.cc: In method `AudioCDProject::AudioCDProject(int, const char *, TocEdit *)':
AudioCDProject.cc:66: implicit declaration of function `int insert_menus(...)'
AudioCDProject.cc:66: warning: cannot pass objects of type `vector<Gnome::UI::Info,allocator<Gnome::UI::Info> >' through `...'
make: *** [AudioCDProject.o] Error 1

il compilatore in questione è: c++ (versione 2.95.3)
questo è l'altro file che mi da problemi :-p

Ciao
Arpeda

/\/\@®¢Ø
24-04-2002, 13:01
Originariamente inviato da Arpeda
[B]ora ho un'altro problema, l'errore che ricevo è il seguente:

AudioCDProject.cc: In method `AudioCDProject::AudioCDProject(int, const char *, TocEdit *)':
AudioCDProject.cc:66: implicit declaration of function `int insert_menus(...)'
AudioCDProject.cc:66: warning: cannot pass objects of type `vector<Gnome::UI::Info,allocator<Gnome::UI::Info> >' through `...'
make: *** [AudioCDProject.o] Error 1

il compilatore in questione è: c++ (versione 2.95.3)
questo è l'altro file che mi da problemi :-p

Ciao
Arpeda
La funzione che cerchi di chiamare ( [i]insert_menus{/i] ) non e' stata dichiarata. Anche qui si tratta di includere il file di intestazione necessario. Probabilmente una volta risolto questo problema sparira' anche l'altro ( "cannot pass objects ..." ).

Arpeda
25-04-2002, 02:20
scusa ma proprio non so che fare :-p

hai idea di cosa includere?
Ciao
Arpeda

/\/\@®¢Ø
25-04-2002, 11:39
Originariamente inviato da Arpeda
[B]scusa ma proprio non so che fare :-p

hai idea di cosa includere?
Ciao
Arpeda

Assolutamente no...
Se e' stata definita nell'ambito del programma si puo' cercare dove sta la dichiarazione.
Tra tutti i files .h cerca quello che contiene la stringa "insert_menus", dovrebbe essere uno solo e quello e' il file da includere ( #include "nomefile.h" ).
Se invece e' la funzione di una libreria bisogna che fai la ricerca tra le intestazioni della libreria stessa.

Arpeda
25-04-2002, 21:54
ho fatto una ricerca tra tutti i file, gli unici che hanno insert_menus sono solo file *.cc ma questi non li posso includere no?

un'altra cosa per fare questa ricerca ho fatto un piccolo scriptino, sai se c'è anche qualche comando nativo?

Se invece e' la funzione di una libreria bisogna che fai la ricerca tra le intestazioni della libreria stessa.
come faccio a fare questa ricerca?

ciao
arpeda