在 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
。
我的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
。