|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
| Thread Tools | Rate Thread | Display Modes |
|
#1
|
||||
|
||||
|
Linker Error
I get the following error whenever i try to compile FRCcode with any variables declared in user_routines.h (in this case, "int bob;"):
MPLINK 3.40, Linker Copyright (c) 2003 Microchip Technology Inc. Error - symbol 'bob' has multiple definitions. Errors : 1 I'm positive i don't have multiple definitions. It appears that user_routines.h is being included several times. i understand repeated #defines would be protected by the Code:
#ifndef __user_program_h_ #define __user_program_h_ .... #endif but how do i protect real code (not #define's) from being repeatedly inserted? The program compiles fine with the variables in user_routines.c, i'd just prefer these global constants to be in the header for convenience. |
|
#2
|
|||||
|
|||||
|
Re: Linker Error
Quote:
So in user_routines.c it would look like: int bob; In user_routines.h it would be: extern int bob; What's happening is that each file that includes user_routines.h is creating a new copy of bob rather than just getting a reference to it. Some compilers/linkers let you decare in the header file but in general it is not supported. |
|
#3
|
||||
|
||||
|
Re: Linker Error
Ah, right, i forgot about using extern when its in a different file. So the extern modifier tells the compiler to ignore multiple declarations?
|
|
#4
|
|||||
|
|||||
|
Re: Linker Error
No, extern tells the compiler that it is declared in another file, your just using it.
char foo = 0; ... extern char foo; |
|
#5
|
|||||
|
|||||
|
Re: Linker Error
This sounds exactly like a problem I had.
It happened to me when I was trying to define variables in the .h files You can either use extern, or just put them in the .c files (thats what I ended up doing) |
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Error in Visual C++ | Ashley Weed | Programming | 15 | 06-05-2004 14:53 |
| Strange 16 bit MS-DOS subsystem error | Crazy_Ed | Programming | 6 | 18-03-2004 14:31 |
| Error message in MPLAB IDE | dddriveman | Programming | 11 | 18-03-2004 06:34 |
| strange error | Anthony Kesich | Programming | 2 | 25-02-2004 18:55 |
| EMERGENCY! EPROM FULL error?!? | CHSguard72 | Programming | 2 | 05-03-2003 20:51 |