| |||||
Technical Support Support Resources
Product Information | C251: FAILURE TO HANDLE SBIT AND INLINE ASSEMBLYInformation in this article applies to:
SYMPTOMSWhen generating/using two or more SRC files in a project that both use the same sbit definition, the linker generates a "MULTIPLE PUBLIC DEFINITIONS ERROR". CAUSEThe Compiler has no idea what's going on in other source files, and so when it encounters the sbit definition, in converting it to assembly, generates a PUBLIC definition of it for the assembler. If it didn't default to this, you'd be forced to go to considerable lengths to declare a global variable in a module with inline assembly. RESOLUTIONDeclaring the sbit in question as an extern in the non-main C files will prevent the error and still provide linkage to the primary (sfr) declaration. You could handle this on a larger scale by having a separate header with externs of the sfrs for use in C files other than main, which will permit you to use them irrespective of the asm question, and without the attendant errors. Last Reviewed: Tuesday, June 08, 2004 | ||||
| |||||