From: Dave J. <dav...@go...> - 2010-05-10 04:39:04
|
Hi, I want to pick the team's brains (as usual). I have RTFMed the gcc manual but ..... How does one persuade gcc to keep a copy of the intermediate files that it generates ? The files I want to look at are the one where the macros have been substituted and the result is a file with C code (with no macros). I want to look at the intermediate files to see exactly what the compiler is warning me about. Dave |
From: Michel B. <mic...@fr...> - 2010-05-10 05:10:12
|
Dave Joubert <dav...@go...> - Mon, 10 May 2010 09:39:02 +0100 >Hi, > >I want to pick the team's brains (as usual). I have RTFMed the gcc >manual but ..... > >How does one persuade gcc to keep a copy of the intermediate files >that it generates ? > >The files I want to look at are the one where the macros have been >substituted and the result is a file with C code (with no macros). > >I want to look at the intermediate files to see exactly what the >compiler is warning me about. > >Dave Gcc, invoked through make (by libtool), does not generated those files on disk, but rather pipes them through the next stage of the compiler that creates object files. If you want to look at preprocessor output do like this: $ make V=1 ....blahblahblah.... make[3]: entrant dans le répertoire « /local/wk/michel/freewrl/freewrl-1.22.8/src/lib » depbase=`echo threads.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../.. -Wall -Wundef -Wunused-macros -I/usr/include/freetype2 -I/usr/include/libxml2 -I/usr/include/libpng12 -DXP_UNIX -DJS_THREADSAFE -I/usr/include/mozjs -I/usr/include/nspr -DTARGET_MOTIF -DSTATUSBAR_STD -g -O0 -D_GNU_SOURCE -fno-strict-aliasing -DTEXVERBOSE -DRESVERBOSE -MT threads.lo -MD -MP -MF $depbase.Tpo -c -o threads.lo threads.c &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -Wall -Wundef -Wunused-macros -I/usr/include/freetype2 -I/usr/include/libxml2 -I/usr/include/libpng12 -DXP_UNIX -DJS_THREADSAFE -I/usr/include/mozjs -I/usr/include/nspr -DTARGET_MOTIF -DSTATUSBAR_STD -g -O0 -D_GNU_SOURCE -fno-strict-aliasing -DTEXVERBOSE -DRESVERBOSE -MT threads.lo -MD -MP -MF .deps/threads.Tpo -c threads.c -fPIC -DPIC -o .libs/threads.o ....blahblahblah.... Pick up the command line after "compile:" and replace "-c" by "-E" which means "do not compile an object file but preprocess it only" and replace "-o target.o" by "-o target.E". Conventionnaly .E stands for "preprocessed C". Cheers, Michel |