On Mon, Nov 16, 2020 at 12:22:54PM +0000, Will J Godfrey wrote: > In GCC 8.3 doing that in a globally included header actually *creates* a > multiple definitions error! > > #ifndef GLOBALS_H > #define GLOBALS_H > > const unsigned int ADD_COLOUR = 0xdfafbf00; fine
Putting a definition in a header file is usually a bad idea. What you get from this (without 'extern' is a separate copy in each file that includes the header. GCC 8 will not flag this as an error. > extern const unsigned int ADD_COLOUR = 0xdfafbf00; boom! This normally should not create ADD_COLOUR, just tell the compiler that it exists somewhere. So this should result in an 'undefined' error. If OTOH you get a 'multiple definition' error that would normally mean there are other definitions as well. Maybe you had this in a number of files, decided later to make it a single global, and forgot to delete the originals ? Ciao, -- FA _______________________________________________ Linux-audio-dev mailing list Linux-audio-dev@lists.linuxaudio.org https://lists.linuxaudio.org/listinfo/linux-audio-dev