Expand #includes to a text file for C++
c++, c-preprocessor
Solution
For gcc and clang, you can use the -E option (see similar answer) to output the preprocessor output without compiling.
To also show comments like in your sample output, you can add in the -CC and -P flags:
`clang++ -E -CC -P fileA.cpp`
All of the processor options for -E can be found on here, on gcc.gnu.org.
-CC Do not discard comments, including during macro expansion. This is like -C, except that comments contained within macros are also passed through to the output file where the macro is expanded.
-P Inhibit generation of linemarkers in the output from the preprocessor. This might be useful when running the preprocessor on something that is not C code, and will be sent to a program which might be confused by the linemarkers.
For the Visual C++ compiler, you can use /E. See this SO answer.
Problem
Is it possible to expand out `#include` lines of a c++ file, probably using the C preprocessor, such that I can read an extended file without `#includes`, but instead with the files that are `#include`d? To be concrete, if I have fileA.cpp: ``` #include "fileB.H" int main() { //do whatever return(0); } ``` fileB.H: ``` #include "fileC.H" //Some lines of code ``` fileC.H ``` //Some other lines of code ``` And output: ``` //Some other lines of code //Some lines of code int main() { //do whatever return(0); } ``` Essentially, copy-pasting the files that are included into one large text/C++ code file, without compiling? If I run the cpp with relevant `-I<Directory containing files to include>` then I get a long text file, but rather than just code, it gives what would be passed to the compiler (duh!)