"Compile Only [current file]" is very useful when you work on projects of more than a single file. On large projects, even when only the current module has changed, the dependency checking can take a while (when I only want to compile (check for syntax errors) the current file, 5+ seconds is a lot). Also, if linking stage isn't skipped, it can end up taking a lot
of time if you've enabled LTCG (of course you tend to do that for final-builds, and use debug builds while testing - but still). And other times, I'm in progress of editing 2-3 files, where a couple of them won't compile cleanly, but I want to test the file I'm currently editing. So, "Compile Only" is a useful feature.
"Specify custom linker" should really be in a preferences dialog somewhere, not in a dropdown menu. You don't need to do something like this often, so it's best not to clutter menus too much - other IDEs are already horrible in this respect, no need to emulate them
Dunno how useful "Build Object Files" is, never felt the need for such a feature myself.
The general build-related featurs I tend to use are:
- Compile Only - already mentioned
- Build Project - compile all files and link
- Clean Project - delete all produced files (.obj, .lib, .exe)
- Rebuild - clean+build
Clean is useful for tidying up, either for source code redistribution or for doing file diffs or whatever. Rebuild is useful when, for some reason, an IDE doesn't realize some dependency needs updating.EDIT:
if you want to keep things newbie-friendly and just have one item that does compile+link, please call it "build" and not "compile" - will be less confusing later on when the newbie realizes that the "Build" step consists of a compile and then link... not to mention that "building a project" might mean even more steps than just compiling and linking.