Hi,
wenn ich mein Programm unter Visual Studio kompilieren will kommen folgender Fehler:
Code:
Fehler 13 error LNK2005: "char const register_addr0" (?register_addr0@@3DB) ist bereits in main.obj definiert. processor.lib
mein Programm besteht aus:
Processor.h
Processor.cpp
und
mainprog.cpp
wobei in der mainproc.cpp die Processor.h "includiert " wird
in der Processor.h sind bestimmte Konstanten deklariert und zugewiesen
wie z.B:
Code:
extern const char* name_register_addr0 = "ad0";
extern const char* name_register_addr1 = "ad1";
nun hab ich die Vermutung das er die Konstanten in mainproc.cpp kompiliert und dann noch mal in Processoer.h.
Ich habe gehofft das der "extern" Befehl da behebt, aber die Fehlermeldungen sind gleich geblieben.
gibt es da eine Möglichkeit das zu umgehen? ansonsten müsste ich #define benutzen, da findet dann aber wieder keine Typenprüfung statt bzw Typenlos.
Der g++ unter Linux spuckt auch errors aus
Code:
martin@turion64:~/Desktop/Downloads/test$ g++ Processor.o Memory.o main.o
main.o:(.rodata+0x13): multiple definition of `register_akku'
Processor.o:(.rodata+0x4): first defined here
main.o:(.rodata+0x14): multiple definition of `register_b'
Processor.o:(.rodata+0x5): first defined here
main.o:(.rodata+0x15): multiple definition of `register_c'
Processor.o:(.rodata+0x6): first defined here
main.o:(.rodata+0x16): multiple definition of `register_d'
Processor.o:(.rodata+0x7): first defined here
main.o:(.rodata+0x17): multiple definition of `register_e'
Processor.o:(.rodata+0x8): first defined here
main.o:(.rodata+0x18): multiple definition of `register_f'
Processor.o:(.rodata+0x9): first defined here
main.o:(.rodata+0x19): multiple definition of `register_addr0'
Processor.o:(.rodata+0xa): first defined here
main.o:(.rodata+0x1a): multiple definition of `register_addr1'
Processor.o:(.rodata+0xb): first defined here
main.o:(.rodata+0x1b): multiple definition of `register_noreg'
Processor.o:(.rodata+0xc): first defined here
main.o:(.data+0x0): multiple definition of `name_register_akku'
Processor.o:(.data+0x0): first defined here
main.o:(.data+0x8): multiple definition of `name_register_b'
Processor.o:(.data+0x8): first defined here
main.o:(.data+0x10): multiple definition of `name_register_c'
Processor.o:(.data+0x10): first defined here
main.o:(.data+0x18): multiple definition of `name_register_d'
Processor.o:(.data+0x18): first defined here
Lesezeichen