trying to make a library "multiple definition of '#var'

Which is a good argument for NOT using one letter variable names.

It doesn't matter if the variable name is "a" or "antidisestablishmentarianismInitiator", the scope (pardon the pun) for confusion is still there: extern int antidisestablishmentarianismInitiator = 12; in one file and extern int antidisestablishmentarianismInitiator = 11; in another is going to confuse. Only the implicit global should be initialised.