If the symbol names and object filenames are different, then you can have at least all the 32-bit code and all the 64-bit code in a library of it's own. And of course, a makefile can easily create an object file called xxA.o
and xxU.o
or something like that for the ASCII vs. UNICODE variant.
If the symbol names are the same (which they will be for functions that, for example, don't take a parameter and have the same return type, or extern "C"
functions, as they are not name-mangled based on parameters), then you can't use this method [or have multiple libraries that supply that function, so supplying a whole long list of libraries also won't work].