在 C 中,如何禁用 makefile 中的优化?

In C, how to disable optimization in the makefile?

我的makefile结构如下

# Default optimization level
O ?= 2

TESTS = $(patsubst %.c,%,$(sort $(wildcard test[0-9][0-9][0-9].c)))

all: $(TESTS) hhtest

-include build/rules.mk
LIBS = -lm

%.o: %.c $(BUILDSTAMP)
$(call run,$(CC) $(CPPFLAGS) $(CFLAGS) -O$(O) $(DEPCFLAGS) -o $@ -c,COMPILE,$<)

test%: test%.o m61.o
$(call run,$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(LIBS),LINK $@)

hhtest: hhtest.o m61.o
$(call run,$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(LIBS),LINK $@)

当我调试时我有 <optimized out> 值:

print ptr
<optimized out>

如何禁用该问题?

您的代码似乎以这样的方式构建(即您将 -O$(O) 传递给 cc),您应该能够说:

O ?= 0

而不是 O ?= 2