Now my concern is purely practical. Sticking to Windows here (on Linux the precompiled binaries never worked for me anyway so I had to compile from source there), would the list of library names we have to tell Visual C++ to link against be a constant? Or would we have to worry about different lists of libraries depending on what iteration of Windows we have?
It shouldn't change as long as SFML doesn't add/change dependencies.
P.S.: How do most C++ devs learn this stuff? Every textbook/tutorial/class/guide I've seen/used for people new to C++ says NOTHING about pragmatic linking issues (they define conceptually linking but never mention what's involved in linking to other people's code). So did you all have to learn this stuff through aimless googling and asking stupid questions on forums?
Well I'm not sure if there are "C++ books" that teach such things in depth, but there are official documents of compilers and alike in the internet. Yes they are hard to read, but they'll teach you about anything you would ever want to know or even more.
Personally I've learned a lot by experimenting and chatting with more experienced people on IRC, but even to this day I don't understand everything fully.
I'd say, I really learned A LOT about CMake, MinGW and compiling/linking by setting up FlexWorld on Windows. I sat about two full days on the PC figuring out what's going on in those CMake files and try to fix issues with MinGW and since FlexWorld depended on at lot of libraries it trained me the hard way how to link them. But a lot of important inputs came from Tank, so I doubt it's possible to learn everything just by trying, one needs some sort of source.
Also I've
bookmarked this for a while, it contains some nice info, but doesn't go too much into detail.