Newsgroup: it.comp.programmare
Titolo: Problema col linker

Ciao a tutti,
ho un programma in c da compilare e caricare su un processore M16C. Il
programma non l'ho fatto io, ed è
già pronto e funzionante. Io ho il solo compito di midificare una piccola
parte del codice c.
Il tutto consiste di alcuni files AA.c e alcuni AA.h.
In più ci sono ncrt0.a30 (il file di startup) e sect30.inc ("file di
inclusione").
Il compilatore è nc30. Questo comprende:
- as30.exe che partendo da ncrt0.a30 e sect30.inc tira fuori ncrt0.r30
- nc30.exe che è il compilatore vero e proprio che da AA.c mi tira fuori
AA.r30
- ln30.exe che è il linker, che in definitiva dovrebbe darmi il file .x30
partendo da ncrt0.r30 e da AA.r30
- lmc30.exe che prende il file .x30 e lo trasforma in .mot
Visto che io ho tutti i files di codice, prima di iniziare a modificare il
codice c (molto semplice) ho preferito
provare a compilare tutto e vedere se riuscivo nuovamente a ottenere il file
.x30 (da x30 a mot è banale e l'ho già provato).
Ovviamente non ha funzionato.
I primi due passi funzionano, ma quando lancio il linker mi tira fuori una
bella serie di
sect30.inc 151 Error (ln30): ncrt0.r30 : '_VoutAltaSoglia1' value is
undefined
I parametri dei vari programmi, linker compreso, sono stati preimpostati dal
programmatore che ha scritto tutto in alcuni
files: comp.bat, asm.bat, link.bat, quindi immagino che siano giusti.
Il fatto che mi dia una sfilza di errori così lunga mi fa pensare che manchi
qualche file.
Infatti mi è venuto un dubbio. Il file comp.bat prende in considerazione
solo il file .c principale, quello che contiene il main.
Io mi sono limitato a lanciare (e quindi compilare) quello. Secondo te devo
"compilarli" uno per uno?
Spero di essere stato abbastanza chiaro nonostante l'imprecisione dei
termini che sicuramente abbonda.
Grazie
Luca

 undefined
Ad occhio, sembra che nel file ncrt0.r30 sia utilizzata la variabile
_VoutAltaSoglia1 che non e' definita da nessuna parte.
Potrebbe essere un extern e il file dove e' definito l'extern non viene
linkato assieme agli altri files.
prova a fare una ricerca nei file, scopri dove e' definita la variabile
che da problemi e accertati che il file sia compilato e venga linkato.
HTH
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 Ad occhio, sembra che nel file ncrt0.r30 sia utilizzata la variabile


 Possibile?!?
Non conoscendo lo specifico compilatore, non so risponderti. In
genere quando un programma ha delle limitazioni sulla lunghezza
massima dell'input, accetta un file in cui e' contenuto l'input
(l'ultima volta che mi e' capitata una cosa del genere, la massima
espressione della tecnologia MS era il dos :-)).
Posso solo consigliarti di dare un'occhiata ai vari switch del
programma e vedere se e' possibile fargli leggere l'input da file.


 programma e vedere se e' possibile fargli leggere l'input da file.
Fantastico! Avevi ragione. Il linker prende come parametro anche un
command file tramite il quale gli si possono immettere tutti i files.
Grazie mille! Il tuo aiuto č stato provvidenziale!
Ciao

 espressione della tecnologia MS era il dos :-)).
perche`, ora invece qual'e`? ;-)
ciao Anto
-- 
"Computer science is not about computers any more than astronomy
is about telescopes." -- EW Dijkstra