------- Comment #1 from fang at csl dot cornell dot edu 2007-01-17 20:39 ------- The problem with passing -E -o ... is that gcc has to assume the default output object as the target, which strips the directory from the name, since -o is used for the resulting .i file. That is what -MT is for, as you've found.
Usually when I generate .i files, I don't care what .o file it assumes (or its deps), and just redirect the result: gcc -E file.c > file.i If you want to generate both .o and .i at the same time, you could pass -save-temps? -- fang at csl dot cornell dot edu changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |fang at csl dot cornell dot | |edu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30491