CopyPoint wrote:
Hi all, after splitting my autosort.c into several [hc]-files i ran into trouble with ld. can anybody give me a hint how to solve this??
autogroup.o(.bss+0x0):../../../include/vdr/tools.h:217: multiple definition of `AutoGroups' autosort.o(.bss+0x0):/home/video/vdr-1.3.32-soft/PLUGINS/src/autosort-0.1.0/autosort.c:34: first defined here
well... you can have only one (exported, non-static) AutoGroups variable across all modules, just as the error says. Currently, autogroup.o and autosort.o export a symbol named 'AutoGroups', and the linker doesn't know which one to prefer. Hard to guess whats wrong without seeing the code.
My guess, you've copied the declaration cAutoGroups AutoGroups; into the header file. If you want to declare global variables in a header file, you have to declare extern cAutoGroups AutoGroups; in the .h file (for import and forward declaration) and another cAutoGroups AutoGroups; in the .c file (the actual declaration).
Cheers,
Udo