|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
| Thread Tools | Rate Thread | Display Modes |
|
#1
|
|||
|
|||
|
MPLink Error
We ran into a problem when we tried defining unsigned chars in a header file and running into a Linker error that claimed that a variable had multiple definitions.
This is what we have in the header file which causes the error: long int KP_P = 5; This is the error given by the Linker: Error - symbol 'KP_P' has multiple definitions. This source code does not cause an error: #define KP_P (5) Declaring the variable as a long int in the *.c file does not cause any errors, it is only in the header file that it causes the error. Has anyone run into this error or is it a bug in the Linker? |
|
#2
|
|||||
|
|||||
|
Re: MPLink Error
It is not a bug in the linker.
When you declare a long int in the header file, every time a .c includes this header file, space will be allocated for KP_P. Even if you have the #ifndef __header_file_name_h_ #define __header_file_name_h_ at the top of the file. Here is the solution: declare lont int KP_P in a .c file. However, also add Quote:
Now, if you include this header file, you should be able to use KP_P. Another comment: the define doesn't show an error, because it is essentially a copy paste operation, and the compiler is smart enough to figure it out. |
|
#3
|
||||
|
||||
|
Re: MPLink Error
This is not a bug. KP_P is defined somewhere else. Either fiond out where or change the variable name.
|
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| MPLab build error | Derek t | Programming | 7 | 17-01-2005 09:33 |
| error - Invalid 18f8520 header file! | vtrehan | Programming | 2 | 16-11-2004 08:31 |
| Confusing Compiler Error | UrsaMNet | Programming | 2 | 28-10-2004 14:32 |
| PHP and Wiki Error | Venkatesh | Website Design/Showcase | 2 | 24-07-2004 15:51 |
| Linker Error | Max Lobovsky | Programming | 4 | 27-05-2004 20:16 |