|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Bannato
Iscritto dal: Jun 2003
Città: Caprese Michelangelo, Arezzo
Messaggi: 146
|
Linkage in C/C++ dei file header
Questa è facile facile
Uso VC++7 ed ho questo problemino: Ho questi 3 file: main.cpp Codice:
#include "editor.h" #include "impostaz.h" ... Codice:
#ifndef _editor_h #define _editor_h #include "impostaz.h" #endif Codice:
#ifndef _impostaz_h #define _impostaz_h ... char tipo_di_rendering = 0; int y_off[SCREEN_HEIGHT]; //offset precalcolati per la stampa del pixel ... #endif In fase di compilazione mi dice questo Codice:
main.obj : error LNK2005: "char tipo_di_rendering" (?tipo_di_rendering@@3DA) già definito in editor.obj main.obj : error LNK2005: "int * y_off" (?y_off@@3PAHA) già definito in editor.obj impostaz.obj : error LNK2005: "char tipo_di_rendering" (?tipo_di_rendering@@3DA) già definito in editor.obj impostaz.obj : error LNK2005: "int * y_off" (?y_off@@3PAHA) già definito in editor.obj Come mai? Sono sicuro che è una cavolata porc... |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Uh oh il vc ti compila anche editor.obj e impostaz.obj...sicuro che non hai altri file oltre questi tre?
In ogni caso, il tuo "errore" è instanziare un oggetto in un header: in un header gli oggetti andrebbero solo dichiarati (a meno di situazioni particolari, o oggetti static). Ad esempio dovresti _dichiarare_ in impostaz.h: Codice:
extern char tipo_di_rendering;
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
#3 |
|
Bannato
Iscritto dal: Jun 2003
Città: Caprese Michelangelo, Arezzo
Messaggi: 146
|
Grazie tante! Appena torno a casa provo subito!
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 17:19.



















