Sto usando una libreria open source che sembra avere molte direttive di pre-elaborazione per supportare molte lingue diverse da C. Per poter studiare cosa sta facendo la libreria mi piacerebbe vedere il codice C che sto compilando dopo la pre-elaborazione , più come quello che scriverei.
Gcc (o qualsiasi altro strumento comunemente disponibile in Linux) può leggere questa libreria ma generare un codice C che ha il preprocessore convertito in qualsiasi cosa ed è anche leggibile da un essere umano?
Sì. Passa a gcc l’opzione -E
. Ciò produrrà il codice sorgente preelaborato.
cpp
è il preprocessore.
Esegui cpp filename.c
per generare il codice preelaborato, o meglio, reindirizzarlo su un file con cpp filename.c > filename.preprocessed
.
Sto usando gcc come preprocessore (per i file html). Fa solo quello che vuoi. Espande le direttive “# -“, quindi restituisce un file leggibile. (NESSUNO degli altri preprocessori C / HTML che ho provato a fare: concatenare le linee, soffocare caratteri speciali, ecc.) Dopo aver installato gcc, la riga di comando è:
gcc -E -xc -P -C -traditional-cpp code_before.cpp> code_after.cpp
(Non deve essere ‘cpp’.) C’è un’eccellente descrizione di questo utilizzo su http://www.cs.tut.fi/~jkorpela/html/cpre.html .
“-Traditional-cpp” conserva spazi e tabulazioni.
Correre:
gcc -E .c
o
g++ -E .cpp