Can't turn off gcc optimizer, Makefile from automake

旧城冷巷雨未停 提交于 2019-12-03 17:36:48

问题


I am trying to get ZBar in a debug session. I am able to do so, but I can't get the optimizer to turn off, so my debug session jumps around unexpectedly and many variables are labeled as optimized-out in Eclipse Indigo. I am running in Ubuntu.

I have tried adding -O0 as far right in any gcc call in the Makefiles as possible, since the last -O is the acting one. I used -Q --help=optimizers to find what to be looking for, but its output is a bit odd:

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...

Obviously, I've been putting -O0 in several places. I don't have any experience with automake, which is used by ZBar. I'm trying to avoid having to make my own Makefile from scratch, are there any suggestions on where to look to disable the optimizer? I have already searched the Makefiles for all the -O's and any -f's related to optimization; I've found none. The project was cleaned after the Makefile modification attempts were made.


回答1:


Disabling optimizations can most easily be done when you run configure, or when you run make. Either

configure CFLAGS='-g -O0' CXXFLAGS='-g -O0'

or

make CFLAGS='-g -O0' CXXFLAGS='-g -O0' clean all

should do what you want. If you set CFLAGS/CXXFLAGS during configure, those values will be used for all invocations of make that do not override them, while setting them at make time is a one-time deal.



来源:https://stackoverflow.com/questions/9725278/cant-turn-off-gcc-optimizer-makefile-from-automake

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!