How do I get the preprocessed output of a header file?
I have a header file where I used:
#if defined(LINUX) || defined(ANDROID)
pthread_t gpthread;
#endif
Now I would like to get only the content of the header file after passing -DLINUX in compilation. Is there a way to get it? If I use:
#arm-linux-androideabi-g++ -E main.c > temp
then the conclusion confuses me a little.
You can simply ask the compiler to do preprocessing in the header file only:
arm-linux-androideabi-g++ -DLINUX -E foo.h > temp
You might be interested in keeping the comments in the preprocessed output (for better readability) with
arm-linux-androideabi-g++ -DLINUX -C -E foo.h > foo.i
then look (with editor or pager) in foo.i
The generated one foo.i
contains lines starting with #
to convey location information.
Why not call cpp -D<something to be defined> <header file name>
directly?