|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Oct 2007
Città: Terlago --> Trento
Messaggi: 88
|
[C/C++] Modularizzazione e file header
Ciao a tutti, allora devo fare un progetto per scuola e in pratica devo modularizzare un unico file in cpp di 4000 righe di codice (e senza file .h) dividendolo in più file cpp e mettergli i relativi file h.
File .h Codice:
... struct drive { // Drive su un canale ATA bool presente; bool dma; unsigned int tot_sett; partizione* part; }; ... Il problema mi si presenta con alcune struct: Codice:
// descrittore di swap struct des_swap { short channel; // canale: 0 = primario, 1 = secondario short drive; // dispositivo: 0 = master, 1 = slave partizione* part; // partizione all'interno del dispositivo bm_t free; // bitmap dei blocchi liberi superblock_t sb; // contenuto del superblocco } swap; // c'e' un unico oggetto swap Codice:
/home/davide/Os2/nucleo/sistema/libreria.cpp:20: multiple definition of `_swap' sistema/sist_cpp.o:/home/davide/Os2/nucleo/sistema/sistema.cpp:81: first defined here ![]() Non essendo molto esperto chiedo aiuto a voi.. come posso risolvere? Grazie!!!!! |
![]() |
![]() |
![]() |
#2 |
Member
Iscritto dal: Oct 2007
Città: Terlago --> Trento
Messaggi: 88
|
Ehm, scusate ma ho già risolto..... bastava aprire e risalvare tutti i file del progetto e adesso funziona tutto!!
Scusate ![]() |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Nel .h:
Codice:
// descrittore di swap struct des_swap { short channel; // canale: 0 = primario, 1 = secondario short drive; // dispositivo: 0 = master, 1 = slave partizione* part; // partizione all'interno del dispositivo bm_t free; // bitmap dei blocchi liberi superblock_t sb; // contenuto del superblocco }; Codice:
struct des_swap swap; extern struct des_swap swap; Ovviamente devi includere il .h. |
![]() |
![]() |
![]() |
#4 |
Member
Iscritto dal: Oct 2007
Città: Terlago --> Trento
Messaggi: 88
|
Si infatti io avevo fatto come hai scritto tu però continuava a darmi quell'errore... prbabilemente perché compilo con un makefile (che tra l'altro non ho fatto io e quindi non conosco il funzionamento specifico) quindi dovevo ricompilare tutti i file per avere i file oggetto TUTTI giusti altrimenti alcuni mi rimanevano con la struct swap linkata e mi dava multiple definition.
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Dawith...se devi rimettere mano al progetto guarda di togliere le variabili globali...sono una bestemmia in un linguaggio ad oggetti
![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:48.