It's a tough task, I think.

Take a look at this :
So, the linker uses the options and arguments defined in the "LINK" environment variable.

So, I think this will work (not tested though):
(1) Create a system environment variable called "LINK" with value "/OUT <default_filename>".
(2) Inside your C++ code, change the LINK variable to "/OUT <default_filename_i>", where "i" is an index.
(3) Compile, I think the LINK variable will take care of the rest

Code: c++
int main()
       SetLINKVar(i);    // This func will change the LINK Env Var