使用autoconf/automake来管理项目很方便,但是使用默认设置的话,编译选项为"-g -O2"。由于进行了优化,在调试时代码的运行次序可能有变化,有一些局部变量也看不见值。
究其原因,是当未对CFLAGS/CXXFLAGS设置特定值时,AC_PROG_CC/AC_PROG_CXX
会默认把它们设置为"-g -O2"。
如果需要对工程中某一个文件或库或者可执行文件设置,则在Makefile.am中加入"-g -O0"。注意:如果不写-O0,automake默认会加上"-O2"。
execname_SOURCES = cannot_opt.cpp
cannot_opt.h
cannot_opt_o_CXXFLAGS = -g -O0 execname_CXXFLAGS = -g -O0
|
如果要对整个工程禁止"-O2",在configure.ac中加入:
${CXXFLAGS="-g"} 或者 CXXFLAGS=${CXXFLAGS--g} AC_PROG_CXX
|
然后autoreconf、configure再make,就是未优化的版本了。
ref:
阅读(1322) | 评论(0) | 转发(0) |