2015-07-16 20 views
5

Utilizzo di avr-gcc e tentativo di ridurre la dimensione di binario utilizzando -funzioni -ffcce e -fdata-sezioni durante la compilazione e il collegamento con --gc -sections. Il file non contiene nulla .lds:avr-ld errore: "gc-section richiede una voce o un simbolo non definito"

SEZIONI {}

Questo errore si verifica quando il collegamento parziale molti .o di in un .a, che sarà poi utilizzato in seguito per completare la compilazione.

Ho letto altri post che trattano queste opzioni, ma nulla che chiarisca il problema ENTRY(). Il loro non sembra esserne necessario nella fase parziale prima di provare a ridurre la dimensione del codice (lo script linker preesistente chiaramente non lo usa).

documentazione afferma: --gc-sectionts

"Questa opzione può essere impostata quando si fa un collegamento parziale (abilitata con l'opzione '-r') In questo caso la radice di simboli conservato deve essere specificato esplicitamente neanche. con un'opzione '--entry' o `--undefined 'o con un comando ENTRY nello script linker."

Questo è il posto dove mi sono perso. Apprezzeremmo ancora qualche spiegazione su come usare --undefined, --entry, o ENTRY cmd in script linker per risolvere questo problema.

+0

Quindi sembra che nessuno abbia un suggerimento. Ho finito per saltare le sezioni --gc alle fasi di collegamento parziale, e utilizzare solo questa opzione linker nella fase finale del collegamento. Ciò si risolve ancora in altri problemi, laddove le cose necessarie vengono rimosse dal binario .. Ma pubblicherò una nuova domanda a riguardo. –

risposta

-1

Ho avuto un problema simile e ho rinunciato. Ho finito col compilare con l'opzione -fwhole-program abilitata che ha ridotto significativamente le dimensioni del mio bootloader.

Problemi correlati