Ho un file sorgente che ho preelaborato utilizzando le opzioni -E
e -P
(utilizzando GCC 4.1.2 per una piattaforma embedded basata su vxWorks). Tutte le altre opzioni sono le stesse di quando compilo il file. Queste opzioni sono:Compilazione file preelaborato in precedenza cambia output
-Wall
-march=pentium
-nostdinc
-O0
-fno-builtin
-fno-defer-pop
-g
-c
-o
così come tutti i percorsi di inclusione. Ora quando compilo questo file preelaborato, il file oggetto risultante è molto più piccolo (circa il 30%) rispetto a quando compilo direttamente l'originale. E quando collego il programma, il linker si lamenta dei simboli mancanti (tutti in codice utente), cosa che ancora non accade quando si utilizza il file sorgente originale. Perché c'è una differenza? C'è un modo per farlo funzionare?
Sto modificando la regola che crea il file oggetto aggiungendo semplicemente '-E'- e' -P'-flag, senza rimuovere nulla, quindi sono abbastanza sicuro che sto usando il compilatore corretto e ho tutto il definisce. –