Estoy tratando de obtener ZBar en una sesión de depuración. Puedo hacerlo, pero no puedo hacer que el optimizador se apague, por lo que mi sesión de depuración salta inesperadamente y muchas variables están etiquetadas como optimized-out
en Eclipse Indigo. Me estoy ejecutando en Ubuntu.No se puede desactivar el optimizador de gcc, Makefile de automake
He intentado agregar -O0 tan a la derecha en cualquier llamada gcc en los Makefiles como sea posible, ya que el último -O es el que está actuando. Solía -Q --help = optimizadores para encontrar lo que se busca, pero su producción es un poco extraño:
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...
Obviamente, he estado poniendo -O0 en varios lugares. No tengo ninguna experiencia con automake, que es utilizado por ZBar. Estoy tratando de evitar tener que hacer mi propio Makefile desde cero, ¿hay alguna sugerencia sobre dónde buscar para desactivar el optimizador? Ya he buscado los Makefiles para todos los -O
y -f
relacionados con la optimización; No encontré ninguno. El proyecto se limpió después de que se realizaron los intentos de modificación de Makefile.
Ninguno tiene un efecto. Tenga en cuenta que no soy el autor del código, y simplemente estoy tratando de completar un análisis de algoritmo. Poner el -O0 con la llamada a hacer pone ese -O0 delante de cualquier otro indicador para permitir la optimización, por lo que no es efectivo. No veo ningún indicador de optimización en las miles de líneas del código Makefile ... – vlad417
CFLAGS debe ser el último elemento establecido en COMPILE en el archivo MAKE, por lo tanto, a menos que el mantenedor del paquete supere su intento de establecer CFLAGS (que debe informarse como un error) su configuración debe ser la última. Si hace "CFLAGS = -esta opción-es-un-error", ¿esa opción aparece durante la compilación? –
Cuando agrego el flag falso, obtengo: 'gcc: error: opción no reconocida '-this-option-is-an-error'' – vlad417