01/11/10 12:44
Giarados
Vorrei dividere un mio progetto in moduli. Soprattutto vorrei organizzarlo in questo modo:
negli headers prototipo le funzioni "utilities" e definisco le classi
nei source *.cpp / *.c implemento i metodi delle classi e le funzioni utilities
Poi compilo uno per uno i sorgenti ottenendo gli object files.
Il problema è che quando, in fine, linko il tutto, giustamente, ottengo una sfilza di "multiple definition of...". Normalmente includendo 6 volte la stdio.h gli spetta di diritto al linker insultarmi a modo suo. Ma se non includo l' header.h in un modulo quando vado per compilare naturalmente gcc mi risponde con una ventina di "undefined reference to".
Ultima modifica effettuata da Giarados 01/11/10 12:45
aaa
01/11/10 14:29
Giarados
il problema continua a persistere solo per due variabili contenute in OFIELD.h .
Ho messo all'inizio di ogni source che include quest'header il seguente codice:
#ifndef OFIELD
# include "include/OFIELD.h"
#endif
e in OFIELD.h :
#ifndef OFIELD
# define OFIELD
#endif
però non funge..mi segnala sempre che quelle 2 variabili vengono dichiarate due volte..
Ultima modifica effettuata da Giarados 01/11/10 14:29
aaa
01/11/10 21:13
netarrow
Le direttive di preprocessore non vanno usate per wrappare l'include, ma proprio dentro il file header.
Cioè il contenuto del file OFIELD.h lo fai stare in mezzo a quel codice.
aaa