Newsgroup: it.comp.lang.c++
Titolo: creare un exe con il borland 5.02

Salve a tutti,
purtroppo non sono ancora riuscito a risolvere il problema della creazione
dell'eseguibile con il borland 5.02.
Maurus mi aiutņ giorni fa ma purtroppo poi la "chiacchierata" si č persa
nella notte :-)
punto della situazione:
Ho un file principale dove č presente il main (principal.cpp) e un header
che contiene una classe creata da me (listap.h) mentre l'implementazione di
tale classe č presente su listap.cpp.
i 3 files risiedono nella stessa cartella.
in principal.cpp vi č questo
#include <iostream>
#include "listap.h"
int main(){
int i;
int c;
lista bari;
bari.crealista();
bari.inserisci(bari,5);
bari.inserisci(bari,12);
bari.inserisci(bari,33);
return 0;
}
la compilazione va tutto ok, non ci sono errori.
faccio MAKE o faccio BUILD (non mi č chiara la differenza) e il linking di
principal.exe mi restituisce questo errore
Unresolved external 'Listap::crealista()' referenced from
c:\documenti\mysource\principal.obj
stesso errore altre 4 volte per le altre chiamate agli altri metodi (dico
bene?) di Listap.
uso il Borland 5.02 da windows. Sono costretto a usare questo, non posso
usare da riga di comando.
chi mi puņ aiutare? magari dirmi come si procede passo passo con il borland?
ho cercato nell'help ma non sono riuscito a trovare quel che mi serve (ci
sarą ma non lo trovo!) :-(((
grazie per l'attenzione
ivan


Ciao,
 a questo punto spero che non sia un problema legato all'ambiente Borland ma
piu' banalmente un errore di programmazione.
Vediamo il tipo di errore che ti da' il linker:
Unresolved external 'Listap::crealista()' referenced from
c:\documenti\mysource\principal.obj
In principal.cpp ci hai fatto vedere che fai l'inclusione di listap.h, dove
presumo che ci sia la classe Listap con il prototipo del suo metodo pubblico
crealista().
Per cui presumo anche che in listap.cpp tu faccia l'inclusione di listap.h e
tu implementi il metodo Listap::crealista().
E' tutto giusto quello che ho scritto?
E se si', potresti postare questa implementazione di crealista() ?
Grazie
Maurus

 ha scritto nel messaggio
news:b1h65c$12grnr$1...@ID-125555.news.dfncis.de...

E' giustissimo. Corrisponde perfettamente a quello che ho scritto nei
codici.
| E se si', potresti postare questa implementazione di crealista() ?
io la posto, ti ricordo che il problema si ha uguale-identico con gli altri
metodi della classe.
Nodop * Listap::crealista(){return Listap::inizio=new Nodop;};
grazie ancora per l'interessamento
ivan


Questo sta nel file listap.cpp ok.
Ma c'e' una cosa che non mi torna.
Se riprendiamo il tuo main()
****************************
#include <iostream>
#include "listap.h"
int main(){
int i;
int c;
lista bari;
bari.crealista();
bari.inserisci(bari,5);
bari.inserisci(bari,12);
bari.inserisci(bari,33);
return 0;
}
******************************
Qua io vedo che bari e' un oggetto di tipo lista e non di tipo listap.
Inoltre bari.crealista non viene assegnato a nessuno mentre mi hai fatto
vedere che Listap::crealista() ritorna un puntatore a Nodop.
Per cui mi manca qualcosa per capire cosa sta succedendo.
Sono molto grandi i 3 files del tuo progetto?
Chi e' questa classe lista?
Maurus

 ha scritto nel messaggio
news:b1h94o$12l0o6$1...@ID-125555.news.dfncis.de...
|
| "Ivan Sofa n.1" <dromeda...@inwind.itDELETE> wrote in message
| news:%mV_9.73320$ZE.19...@twister2.libero.it...
| >
| > Nodop * Listap::crealista(){return Listap::inizio=new Nodop;};
| >
| > grazie ancora per l'interessamento
| >
| > ivan
| >
|
| Questo sta nel file listap.cpp ok.
| Ma c'e' una cosa che non mi torna.
|
| Se riprendiamo il tuo main()
|
| ****************************
| #include <iostream>
| #include "listap.h"
|
| int main(){
| int i;
| int c;
| lista bari;
| bari.crealista();
| bari.inserisci(bari,5);
| bari.inserisci(bari,12);
| bari.inserisci(bari,33);
| return 0;
| }
| ******************************
| Qua io vedo che bari e' un oggetto di tipo lista e non di tipo listap.
si scusami, č presente in un altro file typedef Listap lista.
| Inoltre bari.crealista non viene assegnato a nessuno mentre mi hai fatto
| vedere che Listap::crealista() ritorna un puntatore a Nodop.
grazie della segnalazione! Analizzerň l'incongruenza.
Perň non credo che sia quello il mio problema.... purtroppo! :-(((
se vuoi ti mando via mail i codici cosě magari li provi sul tuo compilatore,
magari funzionano da te!
ivan


Va bene, ma prima di fare questo, se hai gia' il compilatore Dev C++,
perche' non provi a compilarci e linkarci lo stesso progetto per vedere  se
li' funziona?
La mia email la vedi nel mio messaggio e togli il REMOVE.
Io pero' non posseggo il Borland ma uso VisualC++ e DevC++, per cui se fosse
un problema legato all'ambiente staremo punto e a capo.
Maurus

il tuo problema sembra essere legato al bc++builder..in pratica non
trova l'implementazione del file che da errore..puoi provare andando
su project->options->directories/conditionals e nell'include path
metti il percorso al file in questione, dovrebbe essere sufficiente

c:\documenti\mysource\principal.obj
Secondo me non hai incluso il "listap.cpp" nel progetto.

 ha scritto nel messaggio
news:o95s3vcue84o242rl...@4ax.com...

se per incluso intendi l'averlo messo nell'elenco dei file del progetto
questo l'ho fatto!
se parli di #include non credo si debba fare per i .cpp
grazie cmq!
ivan