On 29 March 2011 21:38, Edward Diener wrote: > On 3/29/2011 4:18 PM, Jonathan Wakely wrote: >> >> On 29 March 2011 21:10, Edward Diener wrote: >>> >>> According the the docs an "-E" parameter should produce preprocessed >>> output. >> >> It does. >> >>> I add that to the beginning of the g++ or gcc command line but the progam >>> does not produce the output and insists on compiling. What do I have to >>> do >>> to get just preprocessed output in gcc ? >> >> Are you still giving -c on the command line too? Use -E instead of >> that, not in addition to it, otherwise if -c comes later it will >> override the earlier -E option (which I am guessing is what's >> happening if you're putting -E at the beginning.) >> >> Also be aware the preprocessed output will go into the file specified >> by -o, so you might want to change "-c -o foo.o" to "-E -o foo.ii" > > It gives me a bunch of errors, such as: > > error: missing binary operator before token "(" That's an error from the preprocessor, so -E is probably working (i.e. it's not insisting on compiling) but it thinks the input is invalid so it doesn't produce output. > but refuses to generate any output so that I can see what the preprocessor > is seeing when I give it the -E option. Absolutely infuriating ! The preprocessor obviously sees the unpreprocessed input. > Needless to say, using the Wave preprocessor in Boost shows no errors, but > since gcc is not producing the same thing I don't know why gcc thinks the > macros I am using is producing the errors it reports. GCC is complaining about the macros themselves, not their results.