Sto cercando di ottenere ZBar in una sessione di debug. Sono in grado di farlo, ma non riesco a spegnere l'ottimizzatore, quindi la mia sessione di debug salta inaspettatamente e molte variabili sono etichettate come optimized-out
in Eclipse Indigo. Sono in esecuzione su Ubuntu.Impossibile disattivare gcc optimizer, Makefile da automake
Ho provato ad aggiungere -O0 per quanto possibile corretto in qualsiasi chiamata gcc nei Makefile possibile, poiché l'ultimo -O è quello recitazione. Ho usato -Q --help = ottimizzatori per trovare ciò che per essere alla ricerca di, ma la sua uscita è un po 'strano:
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I./include -I./zbar -I./include -O0 -O0 -Q --help=optimizers -Wall -Wno-parentheses -O0 -g -O0 -Q --help=optimizers -MT zbar/zbar_libzbar_la-config.lo -MD -MP -MF zbar/.deps/zbar_libzbar_la-config.Tpo -c zbar/config.c -fPIC -DPIC -o zbar/.libs/zbar_libzbar_la-config.o
The following options control optimizations:
make[1]: *** [zbar/zbar_libzbar_la-config.lo] Error 1
-O<number>
make: *** [all] Error 2
-Ofast
-Os
-falign-functions [disabled]
-falign-jumps [disabled]
-falign-labels [disabled]
-falign-loops [disabled]
-fasynchronous-unwind-tables [enabled]
-fbranch-count-reg [enabled]
-fbranch-probabilities [disabled]
-fbranch-target-load-optimize [disabled]
-fbranch-target-load-optimize2 [disabled]
-fbtr-bb-exclusive [disabled]
-fcaller-saves [disabled]
-fcombine-stack-adjustments [disabled]
-fcommon [enabled]
-fcompare-elim [disabled]
etc...
Ovviamente, Ho messo -O0 in più punti. Non ho alcuna esperienza con automake, che è usato da ZBar. Sto cercando di evitare di dover creare il mio Makefile da zero, ci sono suggerimenti su dove cercare di disattivare l'ottimizzatore? Ho già cercato i Makefile per tutti gli -O
e tutti gli -f
relativi all'ottimizzazione; Non ho trovato nessuno. Il progetto è stato pulito dopo i tentativi di modifica del Makefile.
Nessuno dei due ha un effetto. Si noti che non sono l'autore del codice e sto semplicemente cercando di completare un'analisi algoritmica. Mettere il -O0 con la chiamata make mette quello -O0 davanti a qualsiasi altro flag per abilitare l'ottimizzazione, rendendolo non efficace. Non vedo alcun flag di ottimizzazione impostato nelle migliaia di righe del codice Makefile ... – vlad417
CFLAGS dovrebbe essere l'ultimo elemento impostato in COMPILE nel makefile, quindi a meno che il manutentore del pacchetto non stia tentando di impostare CFLAGS (che dovrebbe essere segnalato come un bug) l'impostazione dovrebbe essere l'ultima. Se si esegue "CFLAGS = -questo-opzione-è-un-errore", tale opzione viene visualizzata durante la compilazione? –
Quando aggiungo la falsa bandiera ottengo: 'gcc: errore: opzione non riconosciuta '-questo-opzione-è-un-errore'' – vlad417