View Full Version : [C/C++] problema .c/.cpp e .h
Valhalla
28-07-2010, 14:07
Ciao a tutti,
premetto che non sono molto ferrato in ambito linux, me la cavo il tanto che basta per sopravvivere. Detto ciò ho un problema con un progetto in C/C++ e ho necessità di creare un file .cpp con all'interno delle funzioni il cui prototipo è dichiarato in un .h , in italiano questa è una libreria! :D il problema è che non ho capito cosa devo mettere nel .h!! Ora il progetto è così strutturato:
file che contiene il main:
#include <Lib/lib.h>
nel lib.h:
void foo () ;
e nel lib.cpp:
void foo ( ) { /* ... */ }
e naturalmente non va.
nel lib.h devo mettere extern? lo devo mettere nel .cpp?
purtroppo non so come fa!! :help:
Grazie! :)
Ma non si capisce niente :ciapet:
Che vuol dire che non va? Che errori ricevi?
Hai parlato di libreria, ma poi parli di main; quindi stai semplicemente compilando separatamente i due file cpp o devi effettivamente realizzare una libreria? In questo caso, come compili?
Valhalla
28-07-2010, 22:46
Si ora che l'ho riletto, effettivamente non si capisce una mazza :D
Allora, io ho un cpp che contiene il main. in questo cpp io metto #include <Lib/lib.h> ed eclipse fa sparire la linea tratteggiata sotto, vuol dire che il path del file è corretto. Ora, io nel .h metto il prototipo, oltre al prototipo devo mettere altro? devo includere il cpp in cui è contenuto il codice a cui il prototipo fa riferimento? Quando compilo il compilatore si lamenta che non riesce a trovare la funzione che io chiamo all'interno del main. Più che altro mi serve sapere quale è la prassi, poi mi arrangio io :D
Grazie :)
Si ora che l'ho riletto, effettivamente non si capisce una mazza :D
Allora, io ho un cpp che contiene il main. in questo cpp io metto #include <Lib/lib.h> ed eclipse fa sparire la linea tratteggiata sotto, vuol dire che il path del file è corretto. Ora, io nel .h metto il prototipo, oltre al prototipo devo mettere altro? devo includere il cpp in cui è contenuto il codice a cui il prototipo fa riferimento? Quando compilo il compilatore si lamenta che non riesce a trovare la funzione che io chiamo all'interno del main. Più che altro mi serve sapere quale è la prassi, poi mi arrangio io :D
Grazie :)
No, è corretto includere solo l'header (naturalmente, ovunque richiami le funzioni! Includilo sia nel file che contiene il main, sia in quello che contiene le implementazioni), e per questo mi interessava l'output del compilatore che hai ricevuto e magari qualche riga di codice in più.
Ad esempio, potrebbe trattarsi di un errore del linker: magari non hai aggiunto al progetto il file in cui hai definito le funzioni.
Valhalla
29-07-2010, 18:52
Ok risolto!! era un problema del linker :p
Grazie mille! :)
vBulletin® v3.6.4, Copyright ©2000-2026, Jelsoft Enterprises Ltd.