Why is -o a candidate for deletion from the Microsoft compiler and linker?
Yes. You should use /F to set compiler output options.
Command line arguments on Windows are different than command line arguments on Unix. They usually start with a / instead of a -, and the arguments to cl.exe
won't necessarily match those of cc
on Unix.
Looks like the option you're looking for is /Fe
I wouldn't necessarily see a nefarious purpose behind that - it's more likely to be some compatibility-related thing (perhaps -o is interfering with some build system or the other used by some big Microsoft customer or the other.)
However, it is annoying when a compiler vendor throws away entrenched practices and learned reflexes.
But the (syntactical and philosophical) differences between the Microsoft compilers and the Unix compilers are bigger than a simple command line switch. To that end, you could try to step away from simple batch build scripts and towards Makefiles - or, better yet, an actual cross-platform build system such as CMake or SCons (please note that they're just examples, I'm not married to any of them :) ).