So lately I have been starting to work on a 2D game engine for the fun of it. Although it's just for the fun of it, should it one day be something worthwhile, I would like to share it with others.
Now the problem I have run in to has to do with the fact that I want to compile the engine into a static library, but as a base, I am working with SDL (or SFML, haven't really decided yet). Because I want the user to only have to include 1 dependency, I link it with the library I am making. Effectively I am just abstracting away other libraries.
Now this is working fine and all, but I stumble upon the lovely warnings:
1>SDL2_image.lib(SDL2_image.dll) : warning LNK4006: __NULL_IMPORT_DESCRIPTOR already defined in SDL2.lib(SDL2.dll); second definition ignored 1>SDL2_image.lib(SDL2_image.dll) : warning LNK4221: This object file does not define any previously undefined public symbols, so it will not be used by any link operation that consumes this library
Now I have found several solution, or rather answers to "fix" this.
The most common answer is to simply let the user link with the library, but that is exactly the thing I want to prevent.
One other way is to prevent defining the same symbols or make sure they're the same if it can't be prevented, but I don't have access to SDL nor do I really want fiddle around in it.
The last option is to ignore it, mostly it will work out fine anyway, be it the fact that I don't like the "mostly" part.
So my question to you people: What do you guys advice on doing about this? Building a library that consists of other libraries.
Perhaps there are some more elegant or better solutions. Anything at all would help.